Moon VFX Exporter | Export animations that cannot be exported from Moon Animator!

Hello devs! today i want to publish a plugin that i made. this is my first ever plugin.
it’s called Moon VFX Exporter!

You can get the plugin here!
Plugin Link : Moon VFX Exporter - Roblox

Q & A
  1. Q : Can’t export because of “Asset model is nil! (Make sure your model contains atleast 1 Part and a 1 PrimaryPart!) Export Failed!”
    A : Make sure your models have primary part, also make sure that no part is inside another part, the parent of all parts that you want animate should always be the model!

  2. Q : What can i export using this plugin?
    A : Currently only Parts and Meshes.

  3. Q : I want to customize my VFX, how should i do it?
    A : You can export the parts and meshes animation using this plugin, but for sound and particles you can script it yourself. just make sure that the remote that fire the vfx is the same, that way you play 2 vfx at the same time.

  4. Q : How do i replicate it to server?
    A : you need to use remote events to do this, there’s lots of tutorial on youtube and google.

What does it do?

Moon VFX Exporter can export parts animation! basically what it can do is export the VFX you create in moon animator into roblox!

How do i use it?

To use it you must first create a “Model” this will be the reference, after you create a model you will want to make a Part inside the Model, set the Part as the PrimaryPart of the Model.

After that you can insert all the part you want to be in the VFX into the Model.

Then just animate the parts as usual in Moon Animator.

After you’re done, click “Save”.

Open Moon VFX Exporter, and select the .xsixx file, it’s usually inside the ServerStorage.

After you selected it, click Export!

Now the assets will be in ReplicatedStorage, and there will be a localscript inside StarterPlayerScripts!

How do i play the animation in-game?

Inside StarterPlayerScripts there will be a folder named MoonVFX, inside there is the exported animation script!
you can Invoke the PlayAnim BindableFunction to play the Animation!
The PlayAnim takes 1 parameters, it’s a CFrame Parameter, the location of where the VFX would play.

This sample script will play the animation on your mouse position

local UIS = game:GetService("UserInputService")

UIS.InputBegan:Connect(function(input)
	if input.UserInputType == Enum.UserInputType.MouseButton1 then
		script.Parent.MoonVFX["Insert your VFX Name here"].PlayAnim:Invoke(CFrame.new(game.Players.LocalPlayer:GetMouse().Hit.p) * CFrame.Angles(0,math.rad(math.random(-360,360)),0))
	end
end)
What the plugin Can't Do
  1. It cannot export animations that have Rigs in it, but everything else should’ve worked fine!
  2. This plugin uses TweenService to play the animation in-game, so anything that TweenService Can’t do, this plugin also cannot do it.
  3. Some easingtypes may not be supported, again, if the easingtype/easingdirection exists in TweenService then it will support it.
Tutorial Video

https://www.youtube.com/watch?v=CBH4VVbrrXU

Oh, and this plugin is Open-Source.
If anyone want to further improve the plugin you can do so by going to this link!

The place is uncopylocked and all the plugin’s file is inside it.

That’s all from me! if there’s any bugs you can tell me by replying here. i will fix it when i have the time!
See ya! :hugs:

UPDATES :

  • Fixed .xsixx error bug caused by moon animator update.
  • Changed the ExporterFramesHandler a little, now it will reference based on names instead of objects, because objectvalues will become nil when its a package.
  • Added a new feature called “Make Model” what this do is it creates a model that is compatible with the plugin, to use it all you need to do is select all the parts that you want to animate and click make model, this will create a new model in workspace that you can animate in moon animator and export using this plugin.
51 Likes

I’m gonna test it… If that work, oh my god… You make me win a lot of time…

5 Likes

sadly multiple part doesn’t work… Any tips?

3 Likes

it does work, you need to put all the parts inside one model and also set an invicible anchored part as its primary. since there will be some bugs with the CFrame if you animate the primary part.
in the uncopylocked place there’s an example of a VFX with multiple parts. you can check it there.

2 Likes

i’ve tried it many times, in many different forms, wether that welded or not. it doesn’t seem to work for me, you can only animate their Cframe, and not other properties. such as Size, Transprancy, etc

1 Like

finally i don’t have to code 22 million effects

tysm for this

4 Likes

strange, it worked for me. even the examples with multiple parts are in the uncopylocked place.
oh and you don’t need to weld it, just put it in the model.
MultiPartsVFX.rbxl (43.4 KB)
here’s an example of multiple parts VFX that i exported using the plugin from moon animator.

1 Like

forgot to say, if i added the properties of the model itself, it wouldn’t want to export.

However i have made some fix by combining their mesh through blender.
thanks for the plugin anyways, great for beginners!

1 Like

yo , i would like to know if it works with particle because when exporting i have an error said that i don’t i need 2 parts but i have 2


image

nope, i dont think it will work with particles, since you cant tween particles sadly.

Great plugin! Does it work with beams?

well, if beams can be tweened then it will work.
but i dont think beam properties is compatible with tween since it used NumberSequence and NumberRange.

1 Like

thank you for the uncopylocked game and the plugin!
the game really helps, because editing pre-existing things really helps me learn.

Hey there! I would like to know how to play a character + vfx animation in game. I try to export the created xisxx file using this plugin, but it does not create any scripts.

make sure in your animation file theres no humanoid animation, only parts.
if it doesnt create any scripts there should be an error/warning in the output.

to play a character + vfx animations you’ll need to script it. so in local just play both animations at the same place and time.

1 Like

I’ve been working my own version of this but I ended up being too lazy and gave up so here’s my list of improvements to do:

  • Do not create the same localscript over and over again for each effect, this is a textbook case of what object oriented programming and collectionservice tags were made for.

  • Going with that last point, this’ll let you place it on ReplicatedStorage along with the physical model it’s using.

  • Root motion (moving characters through animation) is possible with Moon and this kind of workflow, as you can edit the character’s CFrame, tween it, then apply it through AlignOrientation and AlignPosition with RigidityEnabled (We use these constraints so they still have collision).

  • Following last point, this would let you edit effects with the character in the same animation, which just makes it easier in general.

  • Adding on to collectionservice tags and OOP, you could do a lot of cool things such as bind a “Hitbox” object to a part, make an animation with it, then when you go to play the animation, the hitbox will be created, go through all the right motions, and carry out it’s game logic like detecting what it’s hit and dealing damage (in the server of course), and so on.

  • I don’t see a need for it to be a bindable function instead of a bindable event

  • I don’t see a need for reinstancing the keys, you can just keep it as the saved JSON table.

Edit: the reason I gave up on it was the realization that root motion would no longer be in sync with the character’s regular animation if you stopped, changed the speed of, or jumped to a frame in the animation, unless you added that functionality, which is a pain.

The more I hear about moon animator, the more I think it’s a tool for programmers than a tool for animators, it really isn’t friendly, so un-friendly people need to make entire plugins to export animations…

This is a good resource, but an example on why moon animator being used as a full time animation suite is a bad design choice…

Maybe I just don’t understand the usage of it, but I would of thought you can export the animations you make…? :thinking:

2 Likes

you can export humanoid animations, but sadly you cant export part, which is why i made this plugin, what it does is export part animations from moon animator so you can easily use it for vfx later.

I can’t stress enough how much I agree with you. It only lets you export motor6d animations, the same ones that the default editor can do, and even then, you have to go back and put it through the normal editor to publish it! I found it really baffling that Moon lets you animate properties, CFrames, non-motor6d parts and everything, and lets you preview it, so it’s obviously capable of making it work, but it just doesn’t actually export. I don’t understand the moon dev’s rationale. Why make animations that only work in Studio and not in game? Just learn Blender at that point, if your goal’s making cutscenes to post on social media.

1 Like

Hey there, I’ve been using this for a long time, but I reinstalled studio, made a few changes and then installed all my plugins back in. Problem is, it’s not working for me. Maybe it’s me doing something, but could you help me?

1 Like