Aero Framework Remote Events

You can write your topic however you want, but you need to answer these questions:

  1. What do you want to achieve? I want to be able to use Aero Remote events to send animations, audio, etc over the client/server boundary

  2. What is the issue? The issue? I get NIL everytime I use it, no matter the value, unless its a STRING. CLIENT →


    SERVER →

  3. What solutions have you tried so far? I tried using Instance.new() to make sure it wasn’t a bad reference to the object I was trying to send. I still got NIL

1 Like

Hello! I’m a diehard Aero user, but the issue that you’re encountering is not something that is specific to Aero. Right now, you are trying to pass an instance to the server that the client created. That instance does not exist anywhere but the client, meaning it does not exist on the server. When you send an Instance through a Remote of any kind, you aren’t transmitting that Instance, just a hash to identify that Instance. The server receives this hash and looks it up, and since your Instance only exists on the client, the lookup returns nil. Try the same thing but replace Instance.new("Animation") with workspace.Baseplate, or any other thing who’s existence is known by the server, and you will find that it returns the Instance just fine.

That is my mistake, I misunderstood that you were trying to send a client animation to the server.
Why not just send the client the ID of the animation to be played, and then have the client do the heavy lifting of actually creating that animation?

By the way, Aero’s implementation of RemoteEvents and RemoteFunctions does not garble data in any way, the FireClientEvent method literally just fires the given event with the arguments you provide. Anything you notice in regards to the client/server model are not something specific to Aero.

Check out the parameters section of “Limitations” in this article: Custom Events and Callbacks | Documentation - Roblox Creator Hub

Non-replicated Instances

If the value being sent is only visible to the sender then nil will be passed instead of the value. For example, if a server tries to pass a descendant of ServerStorage, the client listening to the event will see nil passed as the value.

  1. local part = Instance.new(“Part”, ServerStorage)
  2. remoteEvent:FireClient(player, part)

In the above code, when the client receives the event it will only see nil passed in and will not have reference to the part.

2 Likes

Calling Instance.new("Animation") on the server without setting its parent to somewhere that it will replicate isn’t going to work because it won’t exist on the client. Sending objects through a remote won’t cause them to replicate.

3 Likes

Thanks! I usually forget to put my objects into Workspace after cloning them, a mistake on my part

Thanks you so much, I’m going to redesign my system