BindableEvents/Functions strip metatables of arguments - this is not reflected in documentation

BindableEvent:Fire (roblox.com)
BindableFunction:Invoke (roblox.com)

Both of these methods will strip the metatable of any table value you pass through them, due to creating a shallow copy for their callbacks to use. This however is not reflected in the documentation for either Bindable, while it is for their remote counterparts. This may seem trivial for power users but it can/will trip up people such as myself who are aware that remotes did this but didn’t know bindables did. Please consider adding this declaration to their documentation

14 Likes

Thanks for flagging this - just reported it, and the team will get to it when they can.

3 Likes

Hello, I would like to ask if there are any updates on this subject.

any updates on this matter? passing metadata through bindableevents would be really nice.

They can’t really fix this without breaking compatibility, only documentation can highlight that fact.

If you’re using them for Signals, use a Lua implementation of Signal like GoodSignal.

1 Like

The actual reason for this is because Bindables can cross Luau VM stacks, its a unique feature that Signal libraries cant utilise

By design, metatables cant be passed through them since it recreates the table, and you also have the issues of sending function signatures cross-VM, which is a whole world of issues.

2 Likes

Alright. Now that we have a better grasp on the semantics of metatable/signal relationships, the issue still stands that this information is not properly represented in the documentation.

Like I said before: I know for power users this dynamic is trivial, but it still has potential to trip up inexperienced scripters who don’t have immediate access to this information

Thanks for your report! We’ve triaged the issue and will follow up when it has been resolved.

1 Like

This change has been made! If you don’t see the changes yet, please allow some time for them to propagate.

1 Like

This topic was automatically closed after 24 hours. New replies are no longer allowed.