-
What do you want to achieve?
I want to make animated VFX/meshes that I exported be seen by other clients as well -
What is the issue?
The exported VFX animation is only seen by the player that activates it with tool and no one else.
How it’s supposed to look to others as well:
Untitled - Clipped with Medal.tv -
What solutions have you tried so far?
I tried learning how to use Remote events but I’m too dumb for that
Your issue might be that you are loading the animation on the client (via a LocalScript) before the Animator of the Humanoid has replicated. This page describes the basic pattern to follow, while the specific page for the Animator class covers why replication could be the issue. Basically, if you are playing an Animation from a LocalScript make sure you use WaitForChild
on both the Humanoid and Animator before calling LoadAnimation
:
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local animator = humanoid:WaitForChild("Animator")
--After this you can safely call `animator:LoadAnimation()`
The solution you tried is the actual solution.
You need to use RemoteEvents to replicate a VFX in a client to server.
local VFX = part -- your VFX part here
local Event = game:GetService('ReplicatedStorage').SkillEvent -- your remoteevent
skill.Activated:Connect(function()
Event:FireServer(VFX)
end)
something like this.
Look here for informations about RemoteEvents.
Thing here is that Roblox Moon Animator doesn’t support VFX being uploaded to Roblox as an animation so there would be no ID to put in
You must script the VFX animation, None of the animator plugins support Parts that isnt connected with Motor6D.
I don’t see it as a problem to make it work with Motor6D, but when I try to animate it + size and make it transparent I dont have such options unless if I use Moon animator files instead of normal roblox animation, in which I won’t be able to upload the animation for the ID
At the end of the tutorial video you provided, It seems like there is an event that plays the animation inside a localScript, and It seems to be BindableFunction.
BindableFunction doesn’t replicate anything to server, and LocalScript CAN replicate an animation to server, only if the animation is Rig animation. (Player.Character).
If an Animator is a descendant of a Humanoid or AnimationController in a Player’s Character then animations started on that Player’s client will be replicated to the server and other clients.
.
If the Animator is not a descendant of a player character, its animations must be loaded and started on the server to replicate.
My explainations about the replicating animations wasn’t good, so I did bring the description in Animator | Documentation - Roblox Creator Hub
Yea so basically animation of part will not replicate to server.
Is this why the parts need a motor6D or to be animated with a rig
Yes.
But there also can be other methods, like using bunch of values or attributes to get a value per frame.
or same as above, but instead just do on each keyframes and tween it based on easing style, direction, time and other TweenInfos.
or yeah you can use motor6d with player’s rig, but it might look weird.
I’m not sure how to do keyframes and tween but either way I thank you a lot for the help