currently I am using a BindableEvent held in Replicated Stoarage and everything is held in the Client. Here are some code snippets.
this is the main thread
BindableEvent.Event:Connect(function(result)
print("main thread recieved")
self:OnActorResult(result)
end)
--....
actor:SendMessage("ProcessSegment", params)
this is in a local script on the Actor side
Actors are stored in workspace in a folder(idk if that matters)
--Actor = script.Parent
script.Parent:BindToMessage("ProcessSegment", function(params)
if event then
event:Fire(results)
end
end