Enjoying the tool? Join the Baal community on Roblox Join →

Emote planner

Pose an R15 avatar, add keyframes and watch the animation. When you like it, copy the script: it builds the animation in Roblox Studio so you can finish it and publish it as an emote.

0.00 s
Script for Roblox StudioSelect your R15 rig in the Explorer, paste the script in the command bar (View → Command Bar) and press Enter.

Figures reviewed on October 25, 2026. Baal Shirt Studio is not affiliated with Roblox. Figures are estimates; always confirm on Roblox before paying.

From plan to published emote

  1. Plan: pick a starting point, pose each joint and add keyframes. Keep the total under 10 seconds.
  2. Prepare the rig: in Studio open Avatar → Rig Builder and create a standard R15 rig. Select it.
  3. Run the script in the command bar. It builds the animation with your keyframes.
  4. Open it in the Animation Editor (Avatar → Animation Editor) from ⋯ → Load and polish the details.
  5. Convert to CurveAnimation: press the Curve Editor button next to the timeline and confirm.
  6. Publish: ⋯ → Publish to Roblox, copy the ID, put it in an Animation object and upload it to the Marketplace (80 Robux).

The requirements and steps come from the official Roblox emote documentation (see sources below). Want to show your emote with your clothing? Use the 3D mockup and the thumbnail maker.

Sources and method

Every figure in this tool comes from these pages. We quote the original text so you can check it yourself. We review the figures every month. See all sources →

Official · RobloxEmote specificationsRoblox Creator Hub · GitHub copy
  • An emote must be shorter than 10 seconds.
    “Emotes must be less than 10 seconds.”
  • The character cannot move far from its starting position.
    “The joint root of the character cannot move too far from its starting position.”
  • The animation must use the standard R15 rig.
    “Animation data must reference a standard R15 rig.”
  • The emote must come from a CurveAnimation.
    “Animation must be sourced from a CurveAnimation.”
Official · RobloxImport emotesRoblox Creator Hub · GitHub copy
  • The KeyframeSequence must be converted to a CurveAnimation.
    “The animation data for emotes must be a Class.CurveAnimation object instead of a Class.KeyframeSequence object.”
  • Steps to convert to a CurveAnimation.
    “In the Animation Editor, select the Curve Editor button next to the timeline. A confirmation prompt displays. · Press Confirm to convert your keyframes into a CurveAnimation clip.”
  • Uploading an emote costs 80 Robux.
    “This process requires an upload fee of 80 Robux.”
Official · RobloxPose and Animation Editor (save animations)Roblox Creator Hub · GitHub copy
  • How the script names and nests the poses.
    “In an R15 character rig, the root part is the HumanoidRootPart. The LowerTorso is connected to the HumanoidRootPart by the a motor named 'Root'. Therefore, the CFrame of a Pose named 'LowerTorso' in a Keyframe would be applied to the motor named 'Root', and not the LowerTorso itself.”
  • The script saves the animation where the Animation Editor looks for it.
    “When you save an animation, Studio saves it as a KeyframeSequence object in ServerStorage and adds a reference to your rig object. (Animation Editor guide)”
Official · RobloxMarketplace fees and commissionsRoblox Creator Hub · GitHub copy
  • Uploading an item costs 80 Robux.
    “Pay an upload fee of 80 Robux per submission.”
  • The upload fee is not refunded if the item is rejected.
    “In general, upload fees are not refunded if an item is rejected through moderation.”
  • Refundable 10 Robux publishing advance for classic clothing.
    “Classic shirt — 10 (Non-limited publishing advance) · A publishing advance is a refundable upfront fee that you pay at the time of publishing an item.”
  • Base commission: 30% to the creator; in games, 40% to the game owner.
    “Marketplace Purchase: Creator receives 30% · In-game Purchase: Creator receives 30%, Game owner receives 40%”
  • Progressive revenue share table (30% to 70%).
    “the more an item is priced above its asset type's price floor, the greater the share of revenue the creator earns. … 1 → 30% · 1.3 → 37% · 1.5 → 41% · 2 → 50% · 2.5 → 57% · 3 → 62% · 3.5 → 65% · 4 → 67% · 5 → 69% · 6 → 70%”
  • Robux from each sale arrive 30 days later.
    “There is a 30 day escrow hold for each purchase.”

FAQ

What does Roblox require for an emote?

According to the official documentation: it must last under 10 seconds, the character cannot move far from its starting position, it must use the standard R15 rig and the animation must come from a CurveAnimation. Uploading costs 80 Robux.

What does the script do?

It builds a KeyframeSequence with your keyframes in Roblox Studio. If your rig already has saved animations, it adds it there so it shows up in the Animation Editor; if not, it leaves it in ServerStorage.

Why do I have to convert it to a CurveAnimation?

Because Roblox only accepts emotes that come from a CurveAnimation. In the Animation Editor press the Curve Editor button and confirm; then publish it to get its ID.

Is it a finished animation?

It is a plan with the main poses. Polish the details in the Studio Animation Editor (hands, head, smoothing) before publishing.

More free tools See all →