本文へスキップ

FiveM サーバー Artifacts

どの FXServer ビルドを使うべきか。推奨 artifact、既知の問題があるビルドの一覧、Windows と Linux の直接ダウンロードをまとめています。

Recommended artifact

How the recommendation works

A new artifact is not recommended straight away. It waits a short period so server owners have time to report problems. The recommended artifact is the newest one that has cleared that window with no reported issues.

No reported issues

artifact のデータはオープンソースのFiveM Artifacts DB (JG Scripts) から。ビルド一覧は citizenfx/fivem の GitHub タグから取得しています。

無料の JSON API

このデータを自分のツールでも使えます

キーも登録も不要、CORS 有効。ベース URL https://artifacts.jgscripts.com

推奨 artifact、Windows と Linux のダウンロードリンク、既知の不具合がある 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…" }
  ]
}

artifact 番号をひとつ確認します。OK、または理由付きで BROKEN を返します。

{ "status": "BROKEN", "reason": "voip-server-mumble.dll server crash (citizenfx/fivem#3054)" }
セルフチェック

サーバー自身にチェックさせる

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.

artifacts のアップデート

サーバーを停止し、artifacts フォルダーの中身 (server-data ではありません) を新しいダウンロードで置き換えてから、もう一度起動します。上のアップデート手順で順を追って説明しています。

問題のあるビルドを見つけましたか

報告はこちらの 報告フォーム から、または GitHub に issue を立ててください。他のサーバーオーナーにも知らせることができます。

server/artifact_check.lua
-- 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)