Roblox-animation-transfer: Automatically transfer animations between users and groups

roblox-animation-transfer is a command line utility that allows you to transfer animations between owners in bulk. This tool was born out of necessity because unlike other asset types on Roblox, animations are locked to games owned by the owner of the animation.

Importing and re-exporting every single animation in my games started to get really old, so I made this tool to automate the entire process.

Usage

Pro-tip: The following examples make use of the npx command, which is automatically included when you install node.js. npx allows you to run commands from packages without needing to actually install them on your system. As long as you have node.js installed, you can run these commands directly and theyā€™ll just work.

Command Line

This is a command line application. You need to open a terminal to run these after installing node.js. On Windows, you can open Command Prompt. On macOS, you can open Terminal.

.ROBLOSECURITY

In order to upload animations, the .ROBLOSECURITY login cookie from Roblox.com is required. The account that the cookie belongs to must have permission to upload animations on the destination group. It is recommended that you use an alternate account for this process just to be safe.

By default, the tool will use the cookie from Roblox Studio on Windows. You do not need to manually specify the cookie if this works for you.

Manually specifying the cookie

In bash, that looks like this:
export ROBLOSECURITY=YOUR COOKIE HERE

And in PowerShell:
$env:ROBLOSECURITY="YOUR COOKIE HERE"

And in Command Prompt:
set "ROBLOSECURITY=YOUR COOKIE HERE"

Animation List Files

This tool reads in text files that contain a list of animations to upload. In addition to creating them manually, the tool can generate them from a user or a group.

The format is simple: each line begins with the animation ID followed by a space, and the remaining text on the line is used as the animation title.

12345 animation name
23423451 second animation name
232323 third animation name

You can generate a file with all animations owned by the logged in user or a group ID with the --list/-l option.

$ npx roblox-animation-transfer --user --list --outFile animations.txt will save the list in a file named animations.txt. You can then manually sift this file to only include the animations you want if necessary.

You can omit the --outFile/-o option, in which case the list is written to stdout.

You could generate a list from a group instead of the logged in user by using the --group [id] option.

Transferring animations

Once you have obtained a list file, either through creating it manually or generating one, you can use it to transfer animations from one owner to another.

$ npx roblox-animation-transfer --inFile animations.txt --group 12345

This will download and re-upload all of the animations from animations.txt to the new owner. This generates a new animation list file written to stdout.

You can specify an --outFile here as well to write the new list to a file instead of stdout. If you omit the --inFile, then stdin is used for the input file.

All together now

Because roblox-animation-transfer can operate purely on stdin and stdout, transferring all animations between two groups is as simple as just one command:

  • $ npx roblox-animation-transfer -g 12345 -l | npx roblox-animation-transfer -g 67890

In the above example, all animations from group id 12345 will be transferred to group id 67890.

Notes

  • If you really wanted to make your game versatile, you could have a script that just maps names to IDs, and then you could have that script consume the output file, since the animations in the output file will always be in the same order as the input file.
  • If an animation fails to upload for whatever reason, the tool will retry up to five times before giving up.
  • If you want to be a real hacker man, then you can just use cat animations.txt | npx roblox-animation-transfer -g 67890 > newAnimations.txt instead of the inFile and outFile switches, which just exist for simplicity.
  • You could upload animations to multiple groups at once by just piping the commands together: cat animations.txt | npx roblox-animation-transfer -g 123 | npx roblox-animation-transfer -g 456 | npx roblox-animation-transfer -g 789

Closing

If you encounter any issues or have any questions feel free to reply here or create an issue on the GitHub repository.

I hope this tool saves you all from hours of clicking and lets you spend more time actually working on your game! :wink:

96 Likes

I did create a feature request for the ability to atleast import published animations quicker, but it could be a while before that even has a possibility of happening. Thanks again for making life easier. Very useful tool.

6 Likes

Just updated this to display errors to stderr like ā€œInappropriate name or description.ā€ I think this should make the problems that some people were having with this more clear how to fix.

1 Like

Updated: roblox-animation-transfer will now automatically use the account you are logged into Studio with on your Windows machine, so you donā€™t need to manually specify the cookie unless you are using a different account.

1 Like

Tysm! This is extremely helpful and I truly appreciate you automating the process!

1 Like

This is an absolutely exquisite tool that has made my life and probably a lot of other peopleā€™s lives a lot easier when it comes to transferring animations to different groups or users. This is a nifty, simple but powerful utility that has saved me hours upon hours of mindless re-uploading of animations.

Now I can spend that time on more important areas of development!

This tool is highly recommended to those who do not want to spend hours of their life reuploading hundreds of animations manually. :slight_smile:

Bravo @evaera

1 Like

A million times, thank you!! After finding this, Iā€™m no longer dreading the process of transferring all of my animations to a new group.

Sadly, I get the ā€œinappropriate name/descā€ error very frequently even though I can manually update with the same name and description just fine. Any idea why this might be happening? @evaera

Sorry for late response, but I was also running into the same issue. I removed every space in the name except the ones seperating the name and id and that fixed my issue

1 Like

Ohh no wonder! Thank you for sharing that!

Really useful as hell, would be cool if it returned a .txt file with all new IDs & their name

And I never thought Iā€™d see animation botting on roblox one day :joy:

It does do this! Just specify --outFile name.txt

1 Like

Hello. Does this still work? Getting unable to extract animation ID error.

Hi, Roblox removed some endpoints which broke this tool.

Itā€™s now been updated (Thanks @Regalijan) and is working again.

1 Like

when trying to upload animations i just get this.

This tool doesnā€™t explain how to use Node.js to install the package. I was able to install Node.js with the latest features and obtain the package zip from GitHub. However, the installation requires specific commands that Iā€™m unfamiliar with. It mentions ā€˜npxā€™, but Iā€™m uncertain about its function.

2 Likes

Great tool, works perfectly. Is there any way to export the new animation IDs to the placefile?

Could you do a video on this? Iā€™m having a lot of trouble trying to figure this cmd thing out

2 Likes

ive managed to pull all the anims , but its missing a huge amount. a project im working on has hundreds and hundreds of animsā€¦it seemed to have pulled 100 and included my own animations from outside of the group which makes no sense. is there a setting i can do to increase it?

a little bit of context might help, a lot of the animations i believe were transferred with this utility from another project so maybe its causing it to behave weirdly? other than that i have no idea what the issue is.