diff --git a/Source/Engine/Networking/NetworkReplicationHierarchy.cpp b/Source/Engine/Networking/NetworkReplicationHierarchy.cpp
index 224ee9f31..b6772fc48 100644
--- a/Source/Engine/Networking/NetworkReplicationHierarchy.cpp
+++ b/Source/Engine/Networking/NetworkReplicationHierarchy.cpp
@@ -74,6 +74,17 @@ bool NetworkReplicationNode::GetObject(ScriptingObject* obj, NetworkReplicationH
return false;
}
+bool NetworkReplicationNode::SetObject(const NetworkReplicationHierarchyObject& value)
+{
+ const int32 index = Objects.Find(value.Object);
+ if (index != -1)
+ {
+ Objects[index] = value;
+ return true;
+ }
+ return false;
+}
+
bool NetworkReplicationNode::DirtyObject(ScriptingObject* obj)
{
const int32 index = Objects.Find(obj);
diff --git a/Source/Engine/Networking/NetworkReplicationHierarchy.h b/Source/Engine/Networking/NetworkReplicationHierarchy.h
index 78f9cad1f..a3196d67f 100644
--- a/Source/Engine/Networking/NetworkReplicationHierarchy.h
+++ b/Source/Engine/Networking/NetworkReplicationHierarchy.h
@@ -208,6 +208,13 @@ API_CLASS(Abstract, Namespace = "FlaxEngine.Networking") class FLAXENGINE_API Ne
/// True on successful retrieval, otherwise false.
API_FUNCTION() virtual bool GetObject(ScriptingObject* obj, NetworkReplicationHierarchyObject& result);
+ ///
+ /// Sets object properties in the hierarchy. Can be used to modify replication settings at runtime.
+ ///
+ /// The object data to update.
+ /// True on successful update, otherwise false (eg, if specific object has not been added to this node).
+ API_FUNCTION() virtual bool SetObject(const NetworkReplicationHierarchyObject& value);
+
///
/// Force replicates the object during the next update. Resets any internal tracking state to force the synchronization.
///