JOexeFIX v2
Patched server and client executables for Joint Operations: Typhoon Rising (v1.7.5.7)
What is it?
Drop-in replacements for the stock jointops.exe. Three server builds (32Hz, 64Hz and 125Hz packet rates) and one client build for players. Each one is the retail 1.7.5.7 executable with a handful of small, verified binary fixes applied โ no DLLs, no injectors, no launchers. Rename, drop in, start.
v2 (September 2026) adds three server fixes and a client fix on top of the July v1 pack. The big ones: an empty-server crash that has been killing dedicated servers every few days for twenty years, a 125 FPS lock that takes the 125Hz server from a pinned CPU core to idle, spawn protection you can set in game.cfg, and the vehicle weapon bug fixed on the client.
Open recipe: every patch in this pack is documented with the exact bytes and a Python script that reproduces it from a retail exe, at github.com/BadgerLove/jo-server-patches. You never have to trust a binary from a stranger โ build it yourself and compare the hashes below.
Download
๐ง JOexeFIX-v2.zip โ 7 September 2026
Contains jointops_32hz_2gb_v2.exe, jointops_64hz_2gb_nwu_v2.exe, jointops_125hz_2gb_nwu_v2.exe, jointops_LAA_2gb_vwfix.exe and README.txt (the same notes as this page).
What's new in v2 โ at a glance
| Fix | 32Hz server | 64Hz server | 125Hz server | Client |
|---|---|---|---|---|
| Admin-port crash fix (empty-server SYSDUMP) | NEW | NEW | NEW | โ |
Configurable spawn protection (e_spawn_protection) | NEW | NEW | NEW | โ |
125 FPS lock, CPU drops to idle (lock_framerate = 7) | โ | โ | NEW | โ |
| Vehicle weapon restore fix | โ | โ | โ | NEW |
| 2 GB memory cap + Large Address Aware | v1 | v1 | v1 | NEW |
| Bigbuf 256 KB network buffers | v1 | v1 | v1 | โ |
| NWU hole-skip fix | โ | v1 | v1 (tuned) | โ |
| Packets/sec to each player (each direction) | ~16 | ~31 (retail) | ~62 | โ |
The files
jointops_32hz_2gb_v2.exe SERVER
New in v2: admin-port crash fix, configurable spawn protection.
Unchanged from v1: 2 GB, LAA, bigbuf, ~16 packets a second each way per player (hold-off 4). No NWU fix, because the reorder stall it guards against does not trigger at this rate. Frame loop unchanged from v1.
Best for: slow hosts and high-ping player bases. Fewer packets in flight means fewer drops and kicks for players on bad lines.
jointops_64hz_2gb_nwu_v2.exe SERVER
New in v2: admin-port crash fix, configurable spawn protection.
Unchanged from v1: 2 GB, LAA, bigbuf, NWU hole-skip, ~31 packets a second each way per player (hold-off 2, the retail cadence). Frame loop unchanged from v1.
Best for: the community standard. A VPS or modest hardware.
jointops_125hz_2gb_nwu_v2.exe SERVER
New in v2: admin-port crash fix, configurable spawn protection, 125 FPS lock.
Unchanged from v1: 2 GB, LAA, bigbuf, NWU tuned for the fast rate, ~62 packets a second each way per player (hold-off 1). This is the exact build running on the FMJ dedicated server โ same SHA-256.
The FPS lock replaces v1's "Sleep removed, 285 FPS, 100% of one core". The main loop now runs a steady ~125 FPS and sleeps between frames, so CPU use drops from a pinned core to near idle. Requires lock_framerate = 7 in game.cfg โ see below.
Best for: dedicated hardware, or honestly any box now that it idles.
jointops_LAA_2gb_vwfix.exe CLIENT
New: a client build for players. Not for running a server.
- Vehicle weapon restore fix. Since 2004: get into a vehicle seat, get out, and you are holding the weapon you last died with instead of the one you had. Fixed at the dismount, four bytes. Works on any server, patched or not.
- 2 GB memory cap + LAA. The stock 512 MB heap limit raised to 2 GB and the exe made Large Address Aware. Fewer SYSDUMPs, and you can alt-tab or minimise without the crash lottery. Built for the JO TAC Mod but helps vanilla too.
Rename to jointops.exe in your game folder (keep a copy of the original). Grass and visual mods are not in this file. If you only want the vehicle fix and LAA without the heap change, the JointOps-LAA download is that.
Config lines you need
Both keys are written into game.cfg by the server itself, so after the first start with a v2 exe you will find them there. Edit, save, restart the server. Values are read at startup only.
1. Spawn protection โ all three servers
e_spawn_protection = 5
- Seconds of post-respawn invulnerability ("CEASE FIRE"). Retail is a fixed ~10 s baked into the exe; now it is a config line.
- The server adds the line automatically on first start as
e_spawn_protection = 0.0(or no line) means retail ~10 s, so nothing changes until you set it. 5gives 5 seconds. Firing still ends protection early, as always. Spectators are unaffected.- The name must be exactly
e_spawn_protection, including the leadinge_. The config parser sorts keys by their first letter and this key reuses the slot of the client-onlyenable_keyboardtips, which lives under "e". If the server writes it back as= 0after you set it, the key name was wrong. - If you had an
enable_keyboardtipsline, it is now ignored. It did nothing on a dedicated server anyway.
2. Frame rate lock โ 125Hz server ONLY
lock_framerate = 7
lock_framerate is now the frame target in milliseconds, not an on/off switch. 7 gives ~125 FPS (each Sleep overshoots by about a millisecond, which is why it is 7 and not 8).
lock_framerate | Result |
|---|---|
0 | Throttle off: unlimited FPS, one core at 100% (the old v1 behaviour) |
7 | ~125 FPS, CPU idle. Use this. |
8 | ~112 FPS |
16 | Retail 62.5 FPS |
โ ๏ธ Old configs: lock_framerate = 1 used to mean "on". On the v2 125Hz exe it means a 1 ms target, which is nearly unthrottled again. Set it to 7 explicitly. This line only matters on the 125Hz build; the 32Hz and 64Hz builds ignore it as before.
Installation
- Pick the build for your hardware and player base (or the client build if you are a player).
- Back up your current
jointops.exe. - Rename the chosen file to
jointops.exeand drop it into the game folder, replacing the original. - Start the server once, then stop it. Open
game.cfg. - Set
e_spawn_protection = 5(or the seconds you want). On the 125Hz build also setlock_framerate = 7. - Start the server. Done.
Upgrading from v1: same steps. The v1 exes had no config keys of their own, so there is nothing to remove.
The fixes, explained
Admin-port crash fix (all servers) โ new in v2
If your empty server crashed with a SYSDUMP every one to four days, this was it. The remote-admin console on TCP port 4000 (used by WolfRAT, server monitors, any admin tool) keeps a table of connected clients. When that table grows, the server allocates the new one correctly but copies only one sixteenth of the old contents, leaving garbage pointers that later crash in either the command logger or the disconnect free. A populated server rarely lived long enough between map cycles to hit it; an empty one being polled by a monitor for days always did. Both crash signatures seen in years of dumps come from this one bug.
Four bytes fixed. The FMJ server has been on it since 7 September 2026 with its monitor and WolfRAT connected.
For tool authors: the server only reaps an admin slot when the socket errors, not on a polite close. Tools that poll port 4000 should close abortively (SO_LINGER 0). WolfRAT 2.5+ and JO Monitor 1.3+ already do, and with both sides fixed the table never grows into the buggy code at all โ which also protects a server that cannot be patched. Details in patch 01.
125 FPS lock (125Hz server) โ new in v2
Retail caps the main loop at 62.5 FPS. The v1 "unlimited FPS" hack removed the throttle entirely, so the server busy-looped at ~285 FPS and burned a whole core. The v1 notes said Sleep(1) cost 15 ms; that was wrong. There were three separate obstacles: a 16 ms frame target hardcoded as a shift instruction, a clock (GetTickCount) that only advances in 15.6 ms steps so it could never see 8 ms pass, and the removed Sleep. v2 fixes all three: the loop now reads a 1 ms clock, takes its target in milliseconds from lock_framerate, and sleeps between frames. Measured 126-127 FPS on the FMJ server with the core near idle. Details in patch 11.
Configurable spawn protection (all servers) โ new in v2
The post-respawn "CEASE FIRE" window was a fixed 620 ticks (~10 s) written at six places in the exe. v2 routes all six through a tiny routine that reads a config variable instead, borrowing the unused enable_keyboardtips slot under the name e_spawn_protection. Absent or zero means retail, so it is a safe drop-in. Details in patch 12.
Vehicle weapon restore fix (client) โ new in v2
When you leave a vehicle seat the game re-mounts a cached weapon. That cache is written on spawn and by the kit screen, but not by the number-key or mouse-wheel weapon switch, so it still holds your spawn loadout weapon โ "the one you last died with". The fix makes the dismount use the live weapon slot instead. Four bytes, client-side, confirmed in play on every seat-exit case. Details in patch 02.
2 GB memory cap + LAA (all files) โ from v1
The stock 512 MB heap limit is written in four places (a profile table and two global stores); earlier community patches changed only one, which did nothing. All four are raised to 2 GB and the Large Address Aware flag is set so the 32-bit process can actually use the space on 64-bit Windows.
Bigbuf 256 KB network buffers (servers) โ from v1
Expands the stock 64 KB send/receive buffers to 256 KB. Reduces packet loss and "NET INCOMING/OUTGOING PACKET ERROR" on busy servers.
NWU hole-skip fix (64Hz and 125Hz) โ from v1
Spaghetti's fix for the server freezing when NovaWorld UDP packets arrive out of order. The 125Hz build uses tighter thresholds (reorder โฅ 6, lag > 32) so it kicks in before the server stalls on dozens of newer packets.
Packet send rate (servers) โ from v1, correctly explained in v2
The game logic steps every 16 ms in every build; the "Hz" in the file names is the network send cadence, set by one byte. Per direction, per player: ~16 (32Hz build), ~31 (64Hz, the retail value) or ~62 (125Hz) packets a second. Earlier notes called this byte a "tick divisor" and quoted rates with both directions added together; both were wrong and are corrected in patch 07.
Full changelog
v2 โ 7 September 2026
- NEW (all servers): admin-port client-table crash fix. Ends the empty-server SYSDUMP every one to four days.
- NEW (all servers): spawn protection duration is a
game.cfgsetting,e_spawn_protection = <seconds>. The server writes the line itself on first start. - NEW (125Hz server): 125 FPS lock.
lock_frameratebecomes the frame target in milliseconds;7gives ~125 FPS with the CPU idle. Replaces the v1 unlimited-FPS hack on this build. - NEW (client):
jointops_LAA_2gb_vwfix.exeโ LAA + 2 GB heap cap + vehicle weapon restore fix. - Docs: corrected the packet-rate explanation (send cadence per direction, not a tick divisor) and the Sleep(1) story. Every patch now has a public script that reproduces it.
- Unchanged: 2 GB / LAA / bigbuf / NWU / send rates on all three servers are byte-for-byte the July v1 work.
v1 โ 15 July 2026
- Three server builds: 32Hz, 64Hz (NWU) and 125Hz (NWU tuned, Sleep removed).
- 2 GB memory cap at all four sites, Large Address Aware, 256 KB network buffers.
- Distributed via NovaHQ.
Test status
- 2 GB, LAA, bigbuf, NWU and the packet-rate builds: running on community servers since July 2026.
- Admin-port crash fix, 125 FPS lock, configurable spawn protection: running on the FMJ dedicated server since 7 September 2026, with players, verified by packet capture and in play. Not weeks yet.
- Vehicle weapon fix: confirmed in play on every seat-exit case.
Verify your download
SHA-256 of each file in the zip. Rebuild them yourself from the public scripts and you get the same hashes.
6d4dfc8014bb04a7277a8424cced77baebc50b4f115c4482f42f42271116ba9e jointops_32hz_2gb_v2.exe
90cbae5d9712cc1517106d2ba1e6d0b02b2bc17acbb3be78bb414f258b213554 jointops_64hz_2gb_nwu_v2.exe
68de37764e4a0411c39380253b3a30f988586455c21d8a698afe800338af036b jointops_125hz_2gb_nwu_v2.exe
66f77b419d2b8634146cfa06056ee4cb85f8c5abece678c16465150cf79211b4 jointops_LAA_2gb_vwfix.exe
Credits
- Kattoor, Big Baked Bean, biggy, SPAGHETTI, DUZ (hunterz), 51.pl, Dmonic โ community 64Hz patch and binary analysis
- Spaghetti โ NWU hole-skip fix, tick-rate stability analysis
- Bone (ะฒแดษดแด-) โ LAN testing, stability verification
- BadgerLove / FMJ Squad โ v2 patches: admin-port crash, FPS lock, configurable spawn protection, vehicle weapon fix
- jointops2024.com โ community site โข NovaHQ discussion thread
Found an issue? If a v2 server SYSDUMPs, keep the dump โ the EIP and the "code bytes at EIP" lines are what we need. Report it to BadgerLove on the FMJ Squad Discord or open an issue on GitHub.