diff --git a/Source/Engine/Networking/NetworkReplicator.cpp b/Source/Engine/Networking/NetworkReplicator.cpp
index 2bb0d22b6..74a4f14e5 100644
--- a/Source/Engine/Networking/NetworkReplicator.cpp
+++ b/Source/Engine/Networking/NetworkReplicator.cpp
@@ -1302,6 +1302,11 @@ bool NetworkReplicator::HasObject(const ScriptingObject* obj)
return false;
}
+void NetworkReplicator::MapObjectId(Guid& objectId)
+{
+ IdsRemappingTable.TryGet(objectId, objectId);
+}
+
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 202d2fc92..0b9da2c28 100644
--- a/Source/Engine/Networking/NetworkReplicator.h
+++ b/Source/Engine/Networking/NetworkReplicator.h
@@ -116,6 +116,12 @@ public:
/// The network object.
/// True if object exists in networking, otherwise false.
API_FUNCTION() static bool HasObject(const ScriptingObject* obj);
+
+ ///
+ /// Maps object ID into server or client ID (depending on the source ID). Leaves source value unchanged if that specific ID is unused.
+ ///
+ /// The network object identifier to map. Contains result ID once the method completes.
+ API_FUNCTION() static void MapObjectId(API_PARAM(Ref) Guid& objectId);
///
/// Resolves foreign Guid into a local ScriptingObject