Fixing FiveM problems starts by separating the symptom into one of three categories: a server-side hitch that affects many players, a client-side FPS problem affecting one player, or a network/listing failure that prevents joining. Collect the exact error and logs, reproduce one failure, run the matching test, change one relevant setting, and retest. Use an external direct connection and info.json for reachability, the built-in profiler for hitches and FPS drops, and txAdmin for resource, host, and restart evidence. This workflow avoids treating a firewall problem like a scripting problem or restarting a lagging server without identifying why it stalled.
What kind of FiveM problem are you seeing?
The fastest diagnosis depends on who experiences the fault and where the evidence appears. Classify the symptom before changing configuration.
| Symptom | Likely area | Evidence to collect | First test |
|---|---|---|---|
| Everyone rubber-bands, freezes, or pauses together | Server thread, resource, or host load | FXServer console hitch warnings, txAdmin server-thread chart, profiler output | Record a server profile while the hitch occurs |
| One player has low FPS or local stutter | Client hardware, graphics settings, client resource work, or that player’s network path | That player’s F8 console and local performance evidence | Run the profiler from the affected client and compare with server observations |
| Players cannot join, the server is absent, or it is marked private | Port forwarding, firewall, NAT, endpoint configuration, or listing settings | External direct-connect result, info.json response, active server configuration |
From outside the host network, run connect PUBLIC_IP:PORT |
A reachable txAdmin page does not prove that the game endpoint is running or reachable. Treat the panel and the FiveM game port as separate services throughout troubleshooting.
What should I record before changing anything?
Write down the versions, exact error, and last known change before you restart or edit several files. This creates a baseline that lets you identify a regression instead of guessing.
- FXServer artifact build and the txAdmin version.
- Host operating system and whether the server runs behind a router, cloud firewall, or provider firewall.
- The complete error text, including whether it says timeout, failed handshake, connection refused, or a resource/script warning.
- The time of one reproducible failure and which players saw it.
- The last change made to a resource,
server.cfg, firewall, router, artifact, or host. - Relevant FXServer console, txAdmin activity, and client F8 logs before clearing or overwriting them.
Reproduce one failure at a time. Changing a resource, port, artifact, and firewall rule together destroys the comparison you need to find the cause.
How do I test whether the public FiveM game endpoint is reachable?
Test from a device that is not on the server’s host network. A local loopback connection can succeed even when players on the internet cannot reach the forwarded port.
- Find the public address and game port used by the active FXServer instance. Confirm that they are the values the server actually binds, not an old configuration or a panel port.
- On an external client, open the FiveM F8 console.
- Run
connect PUBLIC_IP:PORT, replacing both values with the public address and game endpoint. - Record whether the client reaches the server, times out, or reports a refusal.
- From the same external network, request
http://PUBLIC_IP:PORT/info.json. Save the response or the connection error.
If both direct connection and info.json fail, inspect the active FXServer endpoint, host firewall, cloud or provider firewall, router NAT rule, and port-forwarding target. Documentation identifies bad port forwarding or firewall configuration as the usual cause of this failure pattern. A successful local connection, successful panel login, or successful connection from the same LAN is not an external reachability test.
Why can players connect locally but not from the internet?
The server may be listening correctly while an upstream device drops or misroutes internet traffic. Verify every hop between the public address and the machine running FXServer.
Check the endpoint and listening process
Confirm that the running artifact uses the intended game port and bind address. If multiple servers share a host, make sure the instance you tested is the one assigned to that port and data directory.
Check host and provider firewalls
Allow the game endpoint through the operating-system firewall and any cloud or hosting-provider firewall. A panel rule for TCP 40120 does not automatically allow the separate game endpoint.
Check router forwarding and NAT
Forward the required game traffic to the internal address of the FXServer machine, then test again from an external network. Avoid relying on a router’s hairpin or NAT-loopback behavior; some routers let local clients reach the public address while outside clients still fail.
Check for changing private addresses
If the host receives a new LAN address from DHCP, an old forwarding rule can point at the wrong machine. Reserve the host’s internal address or update the rule, then repeat the external connect and info.json tests.
Why is my FiveM server not showing in the list or marked private?
Listing visibility is separate from direct connectivity. A server can be reachable by address yet absent from the browser because of its master-list setting, heartbeat timing, or NAT behavior.
Inspect sv_master1
Open the active server.cfg and look for an uncommented line containing sv_master1 "". Cfx.re documentation says this can make the server appear private and remove the browser’s connect button. Remove or correct that setting according to the intended public configuration, restart the server, and test direct connectivity again.
Allow for listing propagation
After launch, a server can take up to eight minutes to appear in the list when no other heartbeats are sent. Do not repeatedly alter the configuration during that window; first confirm that the endpoint is externally reachable.
Investigate NAT that changes UDP source ports
Some gateways mask UDP source ports. That can prevent the master list from associating heartbeats with the advertised server. If direct connections work but listing remains absent after the propagation period and configuration check, examine the gateway’s NAT behavior or test from a network with a different router.
How do I fix a FiveM server thread hitch warning?
A hitch warning means the server thread spent too long on work in a frame. Use a profile captured during the warning rather than disabling the warning or restarting blindly.
Capture a server profile
- Keep the FXServer console visible and reproduce the pause or hitch.
- Run
profiler record 500in the server console. The value records a finite sample so the capture can be compared with the moment of the fault. - When recording ends, run
profiler viewto inspect the result. - Look for CPU-time spikes that line up with frame drops or hitch warnings. Resource-tick details can identify the resource file and line associated with a slow thread.
- If another operator needs to inspect it, run
profiler saveJSON filename.jsonand preserve the generated file with the corresponding timestamp and artifact version.
Interpret the profile before editing code
A single spike may be a one-time event; repeated spikes from the same resource are stronger evidence of a workload problem. Correlate the profile with txAdmin’s server-thread chart and the console timestamp. If host CPU or memory pressure rises without a dominant resource tick, investigate the machine or neighboring workloads instead of rewriting an unrelated script.
Apply one targeted change
After identifying the slow resource or line, change one thing: reduce an expensive loop, defer nonessential work, remove an accidental high-frequency query, or temporarily disable the implicated resource for a controlled comparison. Capture another profile under the same reproduction steps. A lower hitch count after the change is useful evidence; a restart alone is only recovery.
How do I fix FiveM client FPS drops that only affect one player?
When other players remain smooth, start with the affected client and its local path rather than changing server resources globally. The profiler can investigate client FPS problems as well as server hitches.
Capture client evidence
- Have the affected player reproduce the drop at a known location or activity.
- Open the FiveM F8 console and run
profiler record 500. - Use
profiler viewwhen the sample ends. Save it withprofiler saveJSON filename.jsonif a developer or administrator needs the file. - Note whether the drop is a low frame rate, a brief micro-stutter, asset streaming pause, or a network symptom such as rubber-banding. These are different observations even when they feel similar.
Compare client and server timelines
If the client profile shows a local CPU-time spike while the server profile remains normal, inspect that player’s graphics load, background applications, and client-side resources. If several clients report the same moment and the server profile spikes on the same resource tick, return to server-side profiling. If FPS is stable but movement snaps or voice cuts out, use the network path tests instead of lowering graphics settings.
How should I use txAdmin to diagnose and recover the server?
txAdmin is bundled with FXServer and provides observation tools that make timing and recovery easier: CPU and RAM monitoring, a live console, server-thread performance charts, activity logs, and automatic restart after a crash or hang.
Correlate load with the symptom
Open the live console and activity log around the failure time. Compare CPU, RAM, and server-thread charts with profiler timestamps and resource changes. A rising memory footprint, a saturated CPU, and a specific resource tick point to different next actions.
Use automatic restart as containment
Configure automatic restart when an unattended server must recover from a crash or hang. Record each restart and the preceding log lines. Restarting restores service but does not prove the original fault is fixed; continue profiling after the server returns.
Keep panel evidence separate from game reachability
A browser session that reaches txAdmin proves only that the management panel is accessible. Repeat the external game test with connect PUBLIC_IP:PORT and http://PUBLIC_IP:PORT/info.json whenever players report joining failures.
What are the correct txAdmin v8 host and port settings?
Current txAdmin v8 host options use TXHOST_* environment variables. The documented default panel port is TCP 40120; the game endpoint must remain distinct.
| Setting | Purpose | Important constraint |
|---|---|---|
TXHOST_TXA_PORT |
Sets the txAdmin panel port | Defaults to TCP 40120; do not reuse the game endpoint’s port |
TXHOST_FXS_PORT |
Enforces the FXServer game endpoint | Use a separate port that is forwarded and allowed through firewalls |
| Separate txData directory | Stores each server’s txAdmin and runtime data | Required for clean multi-server separation |
When launching multiple servers on one host, assign each instance distinct panel and game ports and a distinct txData directory. After changing an environment variable, restart the relevant process and verify both endpoints independently.
Should I update the FiveM artifact to fix lag or connection errors?
Update deliberately rather than treating every hitch as an outdated artifact. Cfx.re’s setup guidance directs operators to use the latest recommended server artifact, but an update can also introduce a regression or change behavior in a resource.
- Record the current artifact build, txAdmin version, operating system, configuration, and a profile or log showing the fault.
- Back up the server data and configuration using the host’s normal backup process.
- Install the latest recommended artifact in a controlled maintenance window.
- Start the server with the same ports, data directory, and resources, then reproduce the original test.
- Compare logs, profiler output, and external connectivity with the pre-update baseline.
- If the fault appears only after the update, use the backup and normal rollback procedure while preserving the new logs for comparison.
What is the shortest decision tree for FiveM lag and connection problems?
Use the branch that matches the first observable symptom, then stop changing unrelated settings until that branch produces evidence.
- Everyone pauses: capture a server profile, inspect hitch warnings and txAdmin server-thread charts, identify the resource or host bottleneck, make one change, and retest.
- One player has low FPS: capture that player’s F8 profiler sample, compare it with the server timeline, and investigate local rendering or client-side work if the server is normal.
- No one can join or the server is absent: test from outside the host network with
connect PUBLIC_IP:PORT, then requesthttp://PUBLIC_IP:PORT/info.json; inspect forwarding, firewalls, NAT, and the active endpoint. - Direct connection works but the list is wrong: check
sv_master1 "", wait up to eight minutes after launch, and investigate UDP source-port masking. - A restart helps temporarily: preserve the preceding logs and profile, then find the trigger. Recovery is not a diagnosis.
What common troubleshooting mistakes make FiveM problems harder?
- Testing only from the host: local success cannot validate internet reachability. Use an external client or network.
- Confusing panel and game ports: TCP 40120 is the documented txAdmin panel default, not a universal game port.
- Changing many variables at once: preserve one reproducible failure and alter one relevant setting.
- Disabling warnings: suppressing a hitch message removes evidence without reducing the workload.
- Assuming listing and connectivity are identical: a server can be directly reachable while absent from the browser, or listed while its endpoint is blocked.
- Rolling forward without a baseline: record the artifact and txAdmin versions before updating so a regression can be recognized and reversed.
Frequently Asked Questions
Can I test FiveM connectivity from a phone hotspot?
Yes. A phone hotspot or another external connection is useful because it avoids the host router’s local routing and hairpin behavior. Run the direct F8 connection and the info.json request from that external network, then compare the result with a client on the regular LAN.
Is port 40120 the port I should give players?
Not necessarily. 40120 is txAdmin’s documented default panel port; players need the game endpoint configured for FXServer. Check the active TXHOST_FXS_PORT or server configuration and keep it separate from the management panel.
What should I send a developer who is investigating a hitch?
Send the saved profiler JSON, the matching console or txAdmin log excerpt, the artifact and txAdmin versions, host operating system, and the exact reproduction time. Include which resource was active and whether all players saw the pause, so the profile can be correlated with the correct server tick.
Why did restarting fix the server for a few minutes?
A restart clears the immediate state of a hung resource, exhausted memory, or stalled thread, so service can return temporarily. It does not identify the trigger; preserve the logs before the restart and profile the next occurrence to distinguish a recurring resource fault from host pressure.