FiveM Server Artifacts
Which FXServer build should you run? The recommended artifact, every build with known issues and direct downloads for Windows and Linux.
Artifact data from the open sourceFiveM Artifacts DB by JG Scripts. Build list from the citizenfx/fivem GitHub tags.
Use the data in your own tools
No key, no signup, CORS enabled. Base URL https://artifacts.jgscripts.com
Recommended artifact, Windows and Linux download links and every known broken artifact.
{
"recommendedArtifact": "35945",
"windowsDownloadLink": "https://runtime.fivem.net/artifacts/fivem/build_server_windows/master/35945-…/server.zip",
"linuxDownloadLink": "https://runtime.fivem.net/artifacts/fivem/build_proot_linux/master/35945-…/fx.tar.xz",
"brokenArtifacts": [
{ "artifact": "12078-12083", "reason": "Some clients will fail to connect…" }
]
}Check one artifact number. Returns OK, or BROKEN with the reason.
{ "status": "BROKEN", "reason": "voip-server-mumble.dll server crash (citizenfx/fivem#3054)" }Let your server check itself
Drop this into any server script. On start it reads the running build from the version convar, asks the API about it and prints a warning in the console if the build has known issues.
Updating artifacts
Stop the server, replace the contents of your artifacts folder (not your server-data) with the new download, then start it again. The update guide above walks through it step by step.
Found a bad build?
Report it on the report form or open an issue on GitHub so every server owner is warned.
-- server.lua: warn in the console when this server runs a broken artifact.
CreateThread(function()
local build = GetConvar('version', ''):match('v1%.0%.0%.(%d+)')
if not build then return end
PerformHttpRequest('https://artifacts.jgscripts.com/check?artifact=' .. build, function(code, body)
if code ~= 200 or not body then return end
local data = json.decode(body)
if data and data.status == 'BROKEN' then
print(('^1[artifacts] Build %s has known issues: %s^0'):format(build, data.reason or 'unknown'))
print('^3[artifacts] Recommended build: https://fivemad.com/artifacts^0')
else
print(('^2[artifacts] Build %s has no reported issues.^0'):format(build))
end
end, 'GET')
end)