diff --git a/Source/Engine/Networking/NetworkReplicator.cpp b/Source/Engine/Networking/NetworkReplicator.cpp
index 232980f9f..804101eb0 100644
--- a/Source/Engine/Networking/NetworkReplicator.cpp
+++ b/Source/Engine/Networking/NetworkReplicator.cpp
@@ -1311,6 +1311,14 @@ void NetworkReplicator::MapObjectId(Guid& objectId)
}
}
+void NetworkReplicator::AddObjectIdMapping(const ScriptingObject* obj, const Guid& objectId)
+{
+ CHECK(obj);
+ const Guid id = obj->GetID();
+ NETWORK_REPLICATOR_LOG(Info, "[NetworkReplicator] Remap object ID={} into object {}:{}", objectId, id.ToString(), obj->GetType().ToString());
+ IdsRemappingTable[objectId] = id;
+}
+
ScriptingObject* NetworkReplicator::ResolveForeignObject(Guid objectId)
{
if (const auto& object = ResolveObject(objectId))
diff --git a/Source/Engine/Networking/NetworkReplicator.h b/Source/Engine/Networking/NetworkReplicator.h
index 0b9da2c28..9934425e0 100644
--- a/Source/Engine/Networking/NetworkReplicator.h
+++ b/Source/Engine/Networking/NetworkReplicator.h
@@ -122,6 +122,13 @@ public:
///
/// The network object identifier to map. Contains result ID once the method completes.
API_FUNCTION() static void MapObjectId(API_PARAM(Ref) Guid& objectId);
+
+ ///
+ /// Adds a new mapping for object identifier. Can be used to link locally-spawned object with across different clients.
+ ///
+ /// The network object.
+ /// The network object identifier to use (eg. defined by server or global/static).
+ API_FUNCTION() static void AddObjectIdMapping(const ScriptingObject* obj, API_PARAM(Ref) const Guid& objectId);
///
/// Resolves foreign Guid into a local ScriptingObject