NeoTF Server Installation Guide

Complete server-side mod installation documentation

SEE IT RUNNING

A public NeoTF server is live if you want to see a working install before building your own:

Redplanet's Martian Marshland [NeoTF Reborn]

About NeoTF

NeoTF is a server-side modification for Team Fortress Classic (TFC) that adds enhanced gameplay features, admin tools and custom content management. Because it is server-side, players do not need to install anything to join — though the client pack adds the custom models and sounds.

Table of Contents

Important Installation Notes[+]

Platform Assumptions

This tutorial assumes you are using Windows (note slash directions for Linux) and have installed STEAM in the default directory (C: drive).

Prerequisites

You must have installed TFC and/or the Dedicated Server application before proceeding. For dedicated servers, use the application from the STEAM games menu, not the standalone HLDS application.

Directory Structure

For different server types, your TFC folder locations will be:

Dedicated Server: C:\Program Files\Steam\SteamApps\YOURNAME@EMAIL\Dedicated Server\tfc
Listenserver: C:\Program Files\Steam\SteamApps\YOURNAME@EMAIL\team fortress classic\tfc
Standalone HLDS: C:\HLServer\tfc
1. Installing NeoTF on a Dedicated Server[+]

1.1 — Installing on a Clean STEAM Server

Step 1: Locate Your TFC Directory
When you installed STEAM with your email account (e.g. YOURNAME@EMAIL), it created a folder structure. Navigate to your dedicated server TFC folder:
C:\Program Files\Steam\SteamApps\YOURNAME@EMAIL\Dedicated Server\tfc
Step 2: Modify liblist.gam
In your TFC folder, find and edit the liblist.gam file:

For Windows Server:

Replace: gamedll "dlls\tfc.dll" With: gamedll "addons\NeoTF\dlls\ntf.dll"

For Linux Server:

Replace: gamedll_linux "dlls/tfc_i386.so" With: gamedll_linux "addons/NeoTF/dlls/NeoTF_i486.so"
Step 3: Create Directory Structure
Create the following directories and extract NeoTF content:
models\neotf\ Extract all NeoTF custom models here
sound\neotf\ Extract llama sound files and ntf_tpoint map sounds (breather.wav, rwind.wav, waterfall2.wav)
sprites\glyphs\ Extract glyph sprite files here
maps\ Extract ntf_* maps here
maps\neotf\ Create for the loadconfig feature — put per-map config files here
addons\NeoTF\ Extract the complete NeoTF folder here
Step 4: Configure Server Settings
Add the following line to your server.cfg file and extract the CVAR config:
exec ntf_cvars.cfg
Extract ntf_cvars.cfg to your TFC directory so the server can execute it.
Step 5: NeoTF Folder Contents
After extraction, your addons\NeoTF\ folder should contain:
areas\ FoxBot area files
data\ Storage for the messaging system
dlls\ ntf.dll (Windows) or NeoTF_i486.so (Linux)
docs\ All NeoTF documentation
help\ ntf_help files
ntf_users.ini Authorization system file
ntf_config.txt Windows DLL loader config
ntf_configlinux.txt Linux SO loader config
ntf_glyphs.txt Glyph configuration file
ntf_welcome.txt Welcome message file

Steam ID Authorization

Your WON ID will not work in TF 1.6. Find your STEAM ID by joining any dedicated server (NOT a LAN server) and typing status in console.

Warpath Map Issue

The TF1.6 dll loads extra sprites and models for teleporters, which may cause a crash when loading the map "warpath" if you have all features enabled.

1.2 — WON Server Installation

WON Server Support Discontinued

All Half-Life games now use STEAM. You cannot create WON dedicated servers any more. See store.steampowered.com.

2. Installing NeoTF on a LAN Server (Listenserver)[+]

2.1 — Installing on a STEAM Listenserver

Step 1: Locate Client TFC Directory
Navigate to your client TFC folder:
C:\Program Files\Steam\SteamApps\YOURNAME@EMAIL\team fortress classic\tfc
Step 2: Create or Modify liblist.gam
You may need to create this file if it does not exist (see Section 5.1). Edit or create liblist.gam:

For Windows:

Replace: gamedll "dlls\tfc.dll" With: gamedll "addons\NeoTF\dlls\ntf.dll"

For Linux:

Replace: gamedll_linux "dlls/tfc_i386.so" With: gamedll_linux "addons/NeoTF/dlls/NeoTF_i486.so"
Step 3: Set Up Directory Structure
Create the same directory structure as the dedicated server (see Section 1.1, Step 3), but in your client TFC folder.
Step 4: Configure Listenserver Settings
Add to your listenserver.cfg file:
exec ntf_cvars.cfg
Extract ntf_cvars.cfg to your TFC directory.

Listenserver Authorization

To authorize yourself on the listenserver, use "STEAM_ID_LOOPBACK" or "VALVE_ID_LOOPBACK". Authorize other players by IP address, as everyone else will have the same ID (usually "STEAM_ID_LAN").

Feature Recommendations

You may want to disable the custom models feature and the glyphs feature to get the "warpath" map to load properly on listen servers.

2.2 — WON Listenserver Installation

Legacy Version Required

Use the previous NeoTF version (1.8.7) for an old WON LAN server. The current version does not support the old WON system.

WON Installation Steps
1. Unzip the zip (or tar) file into your old Half-Life directory
2. NeoTF installs everything under tfc/addons/NeoTF
3. For non-metamod servers, edit tfc\liblist.gam as shown above
4. For metamod servers, follow Section 3
3. Getting NeoTF to Work with Other MODs[+]

3.1 — FoxBot Integration

Metamod Requirement

You MUST install NeoTF and FoxBot WITH Metamod for the bots to use NeoTF features. See Section 3.2 below.

WON Listenserver Setup
Use the FoxBot GUI installer and select the NeoTF option. FoxBot will automatically set up your files (liblist.gam, plugins.ini) to load the NeoTF dll.
STEAM Server Setup
1. First install Metamod and FoxBot per their instructions
2. Make sure FoxBot is loaded as a plugin by Metamod
3. Use a current Metamod version (1.17.x or later, with STEAM support)

FoxBot Directory Placement

The FoxBot folder must be placed in the root game directory containing the HLDS launcher:

Dedicated: \SteamApps\YOURNAME@EMAIL\dedicated server
Listenserver: \SteamApps\YOURNAME@EMAIL\team fortress classic
Configure Metamod for NeoTF
Add the following entry to your server's autoexec.cfg in your TFC folder:

Windows servers:

localinfo mm_gamedll addons/NeoTF/dlls/ntf.dll

Linux servers:

localinfo mm_gamedll addons/NeoTF/dlls/NeoTF_i486.so

Avoid Double Loading

Remove any NeoTF entries in plugins.ini, metamod.ini or liblist.gam, otherwise Metamod will try to load NeoTF twice, causing: "Host_Error: SuckOutClassname: parse error"

3.2 — Metamod Integration

About Metamod

Metamod provides plugin capability for addons; tools such as Adminmod use it. Thanks to RedFox, NeoTF is capable of running as a Metamod plugin.

Step 1: Install Metamod
First install metamod/adminmod per instructions. Once complete, your liblist.gam should have:
gamedll dlls/metamod.dll gamedll_linux dlls/metamod_i386.so
Step 2: Configure Plugins
Your plugins.ini file (or metamod.ini for older MM versions) lists your metamod plugins. Example:
linux dlls/csguard_mm_i386.so linux dlls/admin_MM_i386.so or win32 dlls/admin.dll
Step 3: Add the NeoTF Plugin
Add NeoTF to your plugins.ini (or metamod.ini):

Windows:

win32 addons/NeoTF/dlls/ntf.dll

Linux:

linux addons/NeoTF/dlls/NeoTF_i486.so

Path Format

Paths in plugin files should use unix-style forward slashes (/) and not backslashes (\), even on Windows.

3.3 — Non-Metamod Libraries

HPB Bot and Other Addons
Some addons (like HPB bot) are not metamod plugins. To make them work with NeoTF, modify the appropriate config file:

Windows servers — edit:

addons\NeoTF\ntf_config.txt

Linux servers — edit:

addons/NeoTF/ntf_configlinux.txt
Configuration File Contents
These files contain a SINGLE LINE with the name of the .dll or .so file you want NeoTF to load.

For HPB bot on Windows:

HPB_bot.dll

For HPB bot on Linux:

HPB_bot_i486.so
4. Miscellaneous Configuration[+]

4.1 — Installing Glyphs

Glyph Configuration
The list of glyphs and usage commands is in ntf_glyphs.txt. To install a new glyph:
1. Place the .spr file in addons/NeoTF/sprites/glyphs
2. Add an appropriate line in ntf_glyphs.txt
Glyph File Format
Format: (name) (filename), separated by at least one space
attention sprites/glyphs/t_atten.spr
Where "attention" is the display name and the path is the exact filename.

Glyph Requirements & Limitations

• New glyphs must be 32x32 with alpha transparency (can be animated)
• Keep names and filenames short with NO spaces
• Half-Life has precache limits shared between sprites and models
• Large numbers of glyphs may cause crashes on map load
• Glyphs are disabled by default — some maps like "warpath" will crash

4.2 — Authorization System

Setting Up Authorization
Some NeoTF commands require authorization. Create a file called ntf_users.ini in your TFC directory with the format:
authid-or-ip:authlevel
Authorization Parameters
authid-or-ip: Player's STEAM ID or IP address
authlevel: Sum of authorization codes for the desired commands
Authlevels are described in the sample ntf_users.ini included with NeoTF. Commands are detailed in the admin command reference.

Quote Steam IDs in Console

The Half-Life console treats : as its own token, so a command taking a Steam ID needs the argument QUOTED: ntf_msg "STEAM_0:1:12345" "text". Without the quotes the command sees a truncated ID and prints its usage line, which looks exactly like a broken command. This is engine behaviour and affects every NeoTF version.

4.3 — Setting CVARs

CVAR Configuration
NeoTF includes ntf_cvars.cfg containing all CVARs that affect NeoTF behaviour.
Add this line to your server.cfg (or listenserver.cfg):
exec addons/NeoTF/ntf_cvars.cfg

Per-Map Config Files

With ntf_feature_loadconfig enabled, NeoTF runs maps/neotf/<mapname>_ncf.cfg at map start. Set the cvar to 2 and NeoTF will create the files for you as each map loads, ready to fill in.

Note for 1.9.0: this feature never actually executed the configs — the file was created but never run. It is fixed in 1.9.1; see the changelog.

5. STEAM Issues & Solutions[+]

5.1 — Creating a liblist.gam File

When You Need This File
If you do not have a liblist.gam in either the client or dedicated server folders, you will need to create one (the default is locked in the gcache file).
Creating the File
1. Open a text editor (notepad)
2. Create a new file with these settings:
// Team Fortress Classes Game .dll Listing File // Load order is determined by file order. game "Team Fortress" url_info "www.teamfortressclassic.com" url_dl "" version "1.6" size "37000000" svonly "0" cldll "0" type "multiplayer_only" // Don't show models in browser, since you don't pick them there anyway. nomodels "1" mpentity "info_tfdetect" gamedll "addons\NeoTF\dlls\ntf.dll" gamedll_linux "addons/NeoTF/dlls/NeoTF_i486.so" secure "1" // Enable VAC security modules

Corrected Path

Older copies of this guide printed the Linux line here as gamedll_linux "dlls/NeoTF_i486.so" — without the addons/NeoTF/ prefix used everywhere else. A server built from that line will not find the mod. The block above is correct.

Saving the File
3. Choose "Save As"
4. Change file type to "All Files"
5. Filename: liblist.gam
6. Choose the appropriate folder and save

5.2 — Liblist Overwrite Solution

STEAM Update Problem

This affects dedicated servers using ANY addon MOD that runs from a modified liblist.gam file (Metamod, Adminmod, etc.). Every STEAM update overwrites this file.

Post-Update Procedure
Perform these steps after every STEAM update:
1. Back up your modified liblist.gam, make it read-only
2. Delete the existing liblist.gam
3. Start up a normal TFC dedicated server
4. Shut the server down once loaded and running normally
5. Replace the newly extracted file with your modified read-only file
6. Restart your dedicated server
6. Removing NeoTF from a Server[+]

6.1 — Non-Metamod Server

Windows Server Removal
Edit tfc\liblist.gam and replace:
Replace: gamedll "addons\NeoTF\dlls\ntf.dll" With: gamedll "dlls\tfc.dll"
Linux Server Removal
Edit tfc/liblist.gam and replace:
Replace: gamedll_linux "addons/NeoTF/dlls/NeoTF_i486.so" With: gamedll_linux "dlls/tfc_i386.so"

6.2 — Metamod Server

Plugin Removal
Remove the NeoTF entry from your plugins.ini (or metamod.ini for older versions) and any NeoTF localinfo entries in your autoexec.cfg.

6.3 — Shared Resources Removal

Directory Paths

STEAM Dedicated: C:\Program Files\Steam\SteamApps\YOURNAME@EMAIL\Dedicated Server\tfc
STEAM LAN: C:\Program Files\Steam\SteamApps\YOURNAME@EMAIL\team fortress classic\tfc
WON LAN: C:\Sierra\Half-Life\tfc
Files and Folders to Delete
Remove these items from your TFC directory:
I. Delete the "neotf" folder inside "tfc\models"
II. Delete the "neotf" folder inside "tfc\sound"
III. Delete the "neotf" folder inside "tfc\maps"
IV. Delete the "glyphs" folder inside "tfc\sprites"
V. Delete the "NeoTF" folder inside "tfc\addons"
VI. Remove the "exec ntf_cvars.cfg" line from all config files
VII. Delete the ntf_cvars.cfg file
7. Bugs & Support[+]

Where to Report

The original NeoTF forums at planetneotf.com are long gone. Bug reports and server-admin questions now go to the NeoTF Discord:

[ discord.gg/B3ZNZ4peEz ]

What to Include in a Report
• What you did, and what happened instead
• Which NeoTF version you are running (ntf_version in console)
• Whether you run Metamod, and which plugins
• For a crash: the server console output, and ntf19_crash.log if your build writes one

Crash Reports (1.9.1 and later)

1.9.1 writes ntf19_crash.log naming what the server was doing when it died. Include it with any crash report, along with the console output — some engine shutdowns leave no crash file at all, and the console line is the only evidence.

8. Credits & Contact[+]
Original Development Team
Crazzzy • SpannerSpammer-[AoE]- • Maelstrom • TFCNMuskrat • Tman
See ntf_help.txt for complete credits.
This Site
Downloads, documentation and the 1.9.1 changelog are at the NeoTF home page. The original planetneotf.com is no longer online.
9. Quick Reference Summary[+]

Essential Installation Steps

1. Modify liblist.gam — point it at the NeoTF dll/so
2. Create directories — extract content to the proper folders
3. Configure authorization — set up ntf_users.ini
4. Load CVARs — add exec ntf_cvars.cfg to the server config
5. Test — start the server and verify

Common Issues

Warpath crashes: disable custom models / glyphs
Steam ID auth: use the STEAM ID, not the WON ID
Metamod conflicts: do not load NeoTF twice
Update overwrites: back up and restore liblist.gam after STEAM updates
Command prints its usage line: quote any Steam ID argument

Key Files: liblist.gam, ntf_users.ini, ntf_cvars.cfg, ntf_config.txt
Key Directories: addons/NeoTF/, models/neotf/, sound/neotf/, sprites/glyphs/