diff --git a/Source/Engine/Networking/NetworkReplicator.cpp b/Source/Engine/Networking/NetworkReplicator.cpp
index c9651a055..529e6460b 100644
--- a/Source/Engine/Networking/NetworkReplicator.cpp
+++ b/Source/Engine/Networking/NetworkReplicator.cpp
@@ -941,6 +941,13 @@ bool NetworkReplicator::HasObject(const ScriptingObject* obj)
return false;
}
+ScriptingObject* NetworkReplicator::ResolveForeignObject(Guid objectId)
+{
+ if (const auto& object = ResolveObject(objectId))
+ return object->Object.Get();
+ return nullptr;
+}
+
uint32 NetworkReplicator::GetObjectOwnerClientId(const ScriptingObject* obj)
{
uint32 id = NetworkManager::ServerClientId;
diff --git a/Source/Engine/Networking/NetworkReplicator.h b/Source/Engine/Networking/NetworkReplicator.h
index ecccc52cd..3806f8c9d 100644
--- a/Source/Engine/Networking/NetworkReplicator.h
+++ b/Source/Engine/Networking/NetworkReplicator.h
@@ -116,6 +116,13 @@ public:
/// The network object.
/// True if object exists in networking, otherwise false.
API_FUNCTION() static bool HasObject(const ScriptingObject* obj);
+
+ ///
+ /// Resolves foreign Guid into a local ScriptingObject
+ ///
+ /// The Guid of a foreign object.
+ /// Object if managed to resolve, otherwise null.
+ API_FUNCTION() static ScriptingObject* ResolveForeignObject(Guid objectId);
///
/// Gets the Client Id of the network object owner.