Trace: • serverchanger

NFSU Server Changer

This is an old revision of the document!


NFSU Server Changer

The Server Changer lets Need for Speed: Underground (PC, v1.4) connect to any community server instead of the long-gone EA server - no hex editing of the game's .exe.

It has two parts:

  • Plugin (scripts\NFSUServerChanger.asi): makes the game use the server from NFSUServerChanger.ini. Also: a separate saved login per server, hole punching for races, a fix for the Wine crash on Linux and the EA Trax renamer. Needed.
  • Launcher (NFSUServerChanger.exe): lists the online servers, sets the one you click and starts the game; installs and updates the plugin. Windows and Linux. Optional.

Download: GitHub Releases
Full guide: GitHub Wiki

kickStart or launcher?

If you use kickStart, it installs and updates the plugin with one click - nothing to copy by hand, and you don't need the launcher.

The launcher is a small, open source alternative for those who only want to pick a server and start the game, and the successor of the old LAN tool (nfsuclient). Put NFSUServerChanger.exe (Linux: NFSUServerChanger) into the game folder, start it and click Install plugin - it also keeps the plugin up to date.

What's new for players

  • Challenges: invite a player to a 1-on-1 duel, nobody else can join (on servers with the current server software).
  • Races without port forwarding: on servers with hole punching (kickRom Speedway), races also work on mobile internet or behind a strict router. If no direct connection is possible, the race goes through the server.
  • One login per server: every server remembers your account, switching servers no longer means typing it again.
  • Change the server while the game runs: log out, go back to the account screen and log in again.
  • Linux: no more crash when going online under Wine/Lutris.

Manual installation of the plugin (without any launcher)

  1. Download NFSU.Server.Changer.v<version>.zip from the Releases.
  2. Extract it into the game folder (the folder with the game's .exe). You then have dinput8.dll (the ASI loader) in the game folder and NFSUServerChanger.asi, NFSUServerChanger.ini and NFSUServerChangerTrax.csv in scripts.
  3. Set the server in scripts\NFSUServerChanger.ini:
[Server]
Host = nfs.onl

An empty Host uses the server built into the game's .exe.

Supported: NFSU v1.4, North American, European or Russian (SoftClub) release. Other versions are refused with a message at game start.

Accounts

Every server has its own accounts - an account on one server doesn't exist on another. The plugin keeps one saved login per server: after the first successful login on a server, it is saved for that server. If the server is changed while the login screen is open, that login fails - just open the login screen again.

Races and hole punching

Races run directly between the players' PCs. On servers with hole punching (kickRom Speedway) you don't need to set up anything on your router.

Windows: the first time, a Windows Firewall window may pop up asking whether Need for Speed Underground may communicate on networks. Click Allow access there, otherwise races can't connect.

Linux: see Linux below.

If a race still doesn't start, you can help find the cause: set this in scripts\NFSUServerChanger.ini, race again and send the file scripts\NFSUServerChanger_HolePunch.log in #nfs-underground:

[HolePunch]
Log = 1

Coming from nfsuclient (the old LAN tool)?

nfsuclient writes 127.0.0.1 ps2nfs04.ea.com into the Windows hosts file (needs admin rights) and has to stay open while you play; EA Nation servers never show as online there. The Server Changer needs none of that. Untick “Use server” in nfsuclient and close it, so it removes its hosts entry, then install the plugin (and the launcher, if you don't use kickStart).

Your own servers are taken over: nfsuclient and the launcher both keep them in servers.dat (one server per line). If nfsuclient was in the game folder, the launcher shows them right away; otherwise copy servers.dat into the game folder.

Linux

  • With a firewall like ufw active, allow the game's race port: sudo ufw allow 3658/udp
  • The native Linux launcher starts the game with the settings of its Lutris entry, or with Wine.
  • Starting the game another way: set the DLL override dinput8 to native, builtin, otherwise Wine doesn't load the plugin.
  • Working pings in the game (Wine 7.13 or newer) need ping sockets allowed once - the launcher offers it, or run:
    sudo sh -c “echo 'net.ipv4.ping_group_range = 0 2147483647' > /etc/sysctl.d/99-nfsu-ping.conf && sysctl -p /etc/sysctl.d/99-nfsu-ping.conf”

Help

Ask in #nfs-underground on the Retro Racing Point Discord.