diff --git a/code/components/citizen-devtools/src/ResourceTimeWarnings.cpp b/code/components/citizen-devtools/src/ResourceTimeWarnings.cpp index 2c2c013c3a..ed50524164 100644 --- a/code/components/citizen-devtools/src/ResourceTimeWarnings.cpp +++ b/code/components/citizen-devtools/src/ResourceTimeWarnings.cpp @@ -10,6 +10,9 @@ #ifndef IS_FXSERVER #include #include +#else +#include +#include #endif #include @@ -463,6 +466,26 @@ static InitFunction initFunction([]() } } }, INT32_MIN); + + fx::ScriptEngine::RegisterNativeHandler("GET_RESOURCE_MONITOR_DATA", [](fx::ScriptContext& context) + { + if (gResourceMonitor.get() != nullptr) + { + auto& data = gResourceMonitor->GetResourceDatas(); + + std::vector> arr; + for (const auto& [resourceName, avgTickMs, avgFrameFraction, memorySize, streamingUsage, recentTicks, avgTotalMs, recentTotals] : data) + { + arr.emplace_back(std::tuple(resourceName, avgTickMs, avgFrameFraction, memorySize, streamingUsage)); + } + + context.SetResult(fx::SerializeObject(arr)); + } + else + { + context.SetResult(nullptr); + } + }); }); fx::ResourceMonitor::OnWarning.Connect([](const std::string& warningText) diff --git a/ext/native-decls/server/GetResourceMonitorData.md b/ext/native-decls/server/GetResourceMonitorData.md new file mode 100644 index 0000000000..e66d24c2ed --- /dev/null +++ b/ext/native-decls/server/GetResourceMonitorData.md @@ -0,0 +1,12 @@ +--- +ns: CFX +apiset: server +--- +## GET_RESOURCE_MONITOR_DATA + +```c +object GET_RESOURCE_MONITOR_DATA(); +``` + +## Return value +An array containing the resource monitor data