Hlds_proc Beta 4.5

New Features include the 0x02 bug in HLDS WebConsole fixed, start failure detection (after 8 start failures Hlds_proc will write to t...


Do not refresh or leave this page!

File Description
New Features include the 0x02 bug in HLDS WebConsole fixed, start failure detection (after 8 start failures Hlds_proc will write to the log and give up, so servers with bad files wont constantly lock in a restart loop) and Hlds_proc_run now uses XP style controls if running on XP with it enabled. Theres other minor fixes/changes too.

Read More

Hlds_proc Beta 4
Half-Life Dedicated Server process manager for Windows
User Guide


The current software is in beta stage, use at your own risk. Some parts of the program may be incomplete. Beta4 expires at the beginning of October 2004.

Hlds_proc is a process manager for HLDS, the Half Life dedicated server, it handles tasks such as starting and stopping servers, updating them, and recovering them after a crash, as well as some basic administration tasks such as configuration changing.

Hlds_proc is written mainly in managed C#, so you will need the Microsoft .NET framework 1.1 runtime which is available from this URL;

Hlds_proc is designed to work with both the WON and STEAM versions of Half Life.

When you download Hlds_proc you are automatically granted a basic licence to use the software for non commercial use, this means if you want to use it for your personal game servers you can do so without restriction. However if you are wanting to use Hlds_proc in a commercial environment you must register a commercial licence, see the EULA (licence.txt in hlds_proc directory) for more information.

The basic licence supplied with Hlds_proc limits you to creating a maximum of three web user accounts. The default commercial licence grants you infinite web user accounts, however at request cheaper but more limited licences are available.

If you are unsure if your situation requires a commercial licence please contact us and we will be more than happy to help.The components that make up Hlds_proc 
Hlds_proc is a little more complex than a single executable file you run, it consists of a small suite of programs written to interoperate with each other to create the final product. This chapter will outline these components and what they do:

Each component name starts with “hlds_proc_” and ends with its own name, such as “sv” or “con”, each component has its own file.

This component is the main component of Hlds_proc, no matter how you use Hlds_proc this component is loaded and drives the action. The external communications system is also built into this component.

Installed by default, hlds_proc_run is a user application frontend for Hlds_proc_d, it has a nice GUI and is perfect if you want to run Hlds_proc as a logged in user on the desktop.

This is installed by default on Windows NT systems, it is similar to hlds_proc_run in that it’s a loader for hlds_proc_d. However hlds_proc_sv has no GUI and runs as a windows service, not as a user application. The only way to control hlds_proc when loaded by this service mode loader is via the remote console or the web extensions.

This is the web extensions module for Hlds_proc. It allows users to connect to Hlds_proc from the web and controls servers etc.

A small console application that connects to Hlds_proc in much the same way as hlds_proc_web, and allows controlling of Hlds_proc from the command line.

Note there are other components, but they are just support components and do not need mentioning here.
Setting up your server
We will do our setting up with hlds_proc_run, this is the easiest configuration utility for a tutorial.
Start by loading the hlds_proc_run application, you can use the shortcut placed on your start menu during installation, listed as “Hlds_proc (app mode)”. Once running, you should get an interface that looks like the above;


Click the add server button, and you are presented with a properties dialog where you need to fill in your servers information in order for Hlds_proc to be able to get it up and running for you.
Go through the tabs and change anything you need to the tooltips on the various interface elements give you a little more information on each of the options available to you. If you are not using a Steam server, you can ignore the “Steam only” tab as it only contains options that pertain to Steam users.

Notes:  Setting CPU affinity to an invalid value (like unchecking all CPUs) will force Hlds_proc to use its default, which is to allow HLDS to execute on all CPUs.  Valve Anti cheat only works in some MODs, so the “Disable Valve anti cheat” checkbox may not have any effect for you.  If you wish to set command line arguments for HLDS that are not available in the UI, add them yourself in the “Command Line” tab.  If you tick the “Use global HLDS update tool settings” checkbox then the game server uses the auto-update options set in the “Global Options” dialog box instead of the ones defined in the servers own dialog box, all other options are unaffected.  You cannot change the name of a game server once set.	

When you are done, click the “OK” button to have your server added to Hlds_proc, it will appear in the window like this;


Right click on the icon for a context menu where you can Start and Stop the server, double clicking the icon will bring up the properties page again so you can change any options, most option changes only take effect on restarting the game server.

The game server icon changes with its state, a red cross indicates the server is offline, a green tick means its running and a blue arrow pointing upwards means it is updating.
Scheduled Events
In the “Schedule” tab of the game server property dialog box, you can set actions that will occur at regular intervals.


To add an event change the “Day”, “Time” and “Action” settings to what you want, if you set the action to “Execute Command” then you can also specify the command to send to the HLDS console. This could be handy for changing an RCON password to give different groups administrative access to a server at different times or something.

Once you are happy with those, click the “Add Event” button and Hlds_proc will set up the event, and it will appear in the list above.

Notes:  Double clicking an event in the list will make the controls below reflect that events settings.  Clicking once on an event in the list then on “Remove Event” will remove that event.  You can only set one event for each day and time.  There are special day settings like “Weekdays” that cover more than one day.	

HLDS Console
Hlds_proc_run provides access to the server consoles of the servers it is hosting, just right click on the server icon in the main window and select “Console”. The window appears like so:


Commands can be entered into the box at the bottom much like they would in the real console.

If the server process terminates for some reason, a red bar is displayed and the console becomes unusable until the server restarts.

The Hlds_proc Service Loader
During installation, Hlds_proc installs itself as a service as well, there is no start menu shortcut for the service mode loader as it cannot be started as an application, instead, an entry is created in the services control panel.

By default the hlds_proc service is set to “Manual” startup, once you have configured everything you will probably want to change this to “Automatic”.


You can also start and stop the service from the command prompt by using the command “net start hlds_proc” and “net stop hlds_proc”.

Interacting with the Hlds_proc service
Hlds_proc_sv uses .NET remoting to communicate with other applications like the web extensions and console application. By default, Hlds_proc_sv will open a channel on port 27800. The port can be changed by modifying the file “remoting.cfg” which can be found in the hlds_proc directory. Only connections from the local machine are accepted for security.

Console Connection
The main way of communicating with the Hlds_proc service is via its command line interface, this is hlds_proc_con, and can be found on the start menu after installation, this tool allows you to connect to the hlds_proc service on the machine and administer it from there.

In Beta 3, the console doesn’t have a great deal of functionality, this will change in future versions.

You can add the argument “-port” to the hlds_proc_con shortcut to allow it to connect on a different port. For example “hlds_proc_con -port 13484” will make it listen on the specified port.
The Hlds_proc Web Extensions
If you choose the custom install option, you can opt to install the web extensions. The web extensions are placed in a virtual directory off the default website on IIS. Before any users can connect to the web extensions interface, you must have either hlds_proc_run, or hlds_proc_sv up and running as the web extensions are simply a front end for Hlds_proc.

When users first connect to the website they will get a window that asks that they log in. You must set up the users, passwords and permissions for the web extensions either by using hlds_proc_run, in the global config panel, or by hand editing permissions.ini. The format of permissions.ini is described in the next chapter.

The web extensions rely on users having cookie capabilities in their browser, if they do not, login will just fail.

Below is a rundown of the various pages in the web extensions:

Server List
Shows a nice server listing giving server names, and buttons to start, stop and configure the servers. Depending upon your access, some or all of these buttons might be disabled.

Note: By default, servers you do not have any access to are not listed, however if you want a user to be able to see a server they can not control, give them the permission “View in server list”, which is 32 in permissions.ini. If you want them to be able to see every server regardless, you can set 32 in the _global key for them.	

HLDS Consoles
This page allows you to view the consoles of the servers that are running, and execute commands.

CFG File editor
This page allows you to edit a limited selection of configuration files on the server. It is recommended that your server administrator give you secure FTP access to your HLDS directory if you want more comprehensive access.

Add/Remove Servers
Gives options to delete and add game servers to Hlds_proc, deleting a server will close any open HLDS processes running as that server, when you add a server you will need to know the paths to the HLDS executables on the server machine, there is not yet any browse capability.

View Log
Shows the last set of log lines that Hlds_proc has in its log buffer.

Web User Account Editor
Allows modifying the web user accounts.

About Hlds_proc
Shows version and licence information about Hlds_proc.

Change password
Allows you to change your web password.

Log Out
Logs you out of Hlds_proc, returns you to the login screen.
The Hlds_proc Web Extensions Permissions Config
All permission information is held in a file called permissions.ini which is placed in the same directory as the hlds_proc executables. By default this file does not exist, if you want to only add users by hand, you will need to create the file yourself.

The format of permissions.ini is below:

. . .

So each user is a section in the inj file, enclosed in square brackets, you can add as many users as you like.

There are tow password variables, _password and _pw_encrypted, _password keeps the string of the actual password, if you are editing the file by hand you will be putting passwords in plaintext into the file, so make sure you either set _pw_encrypted to 0, or omit it entirely so Hlds_proc will assume it is not encrypted. If you use hlds_proc_run’s UI to set the password, then it will be encrypted.

The entry _global is for global permissions and overrides, for example if you set the stop/start permission in _global then this will give that user stop/start permission to any server regardless if it is specifically defined for them or not. There are also a few other codes that can only go into _global, see the permissions code table below:

The other entries are game server names, however, be aware that spaces are replaced with the underscore character, so “My server” would become “My_server”. The permission codes are the same as _globals, but the codes only effect the users access to that one server.

Permission codes are numerical values that are added together to combine them.

Code	Meaning	Code	Meaning	
1	Start/Stop server	32	View in server list	
2	Configure server	64	Allow config file editing	
4	View log	65536	Add/Remove servers	
8	Execute command	131072	Can change global settings	
16	View console	262144	Allow everything	

Settings 32 and 64 only do anything if applied to the _globals entry in the ini file as they correspond to global Hlds_proc settings, not game server specific ones.
Below is an example ini file excerpt that gives a user, Rob, access to various functions:


The _global setting of 196609 (65536 + 131072 + 1) lets Rob add and remove servers, change global Hlds_proc settings and start and stop any server.
He can view the console and execute commands on the server “King TFC” (16 + 8).
He can configure the server “Girlpower” (2).
His password is “secretpassword” and is not encrypted.

Changes to permissions.ini have immediate effect on the web extensions.The Hlds_proc Configuration files
Hlds_proc uses two configuration files, servers.ini and events.ini. These files are reloaded at various times whilst hlds_proc is running, so you may change these values in the ini file and they will eventually propagate to Hlds_proc. Doing this is only recommended for people that know what they are doing, as invalid values can have very undesireable effects.

The format of this file is…

[SERVER_1_NAME] property1=valuea property2=valueb  [SERVER_2_NAME] property1=valuea property2=valueb  [_globals] property1=valuea property2=valueb	

The _globals section contains the global values for Hlds_proc.

You can add new servers by simply adding new sections to the INI file.

The format of this file is somewhat more complicated than servers.ini..


So for example, an entry for all days that sends a server command might be:

10_13:00=4:say Hello there.

The “:<SERVER_COMMAND>” need only be added if the action code is that for the server execute action, adding it for other actions has no effect.

Day Codes are numbers that correspond to different day settings, the table below shows them.
Code	Meaning	Code	Meaning	
1	Monday	6	Saturday	
2	Tuesday	7	Sunday	
3	Wednesday	8	Monday-Friday	
4	Thursday	9	Saturday & Sunday	
5	Friday	10	Every day	

The time is just a string of “hh:mm” in 24 hour time format (0-23).

Action codes are:

Code	Meaning	
1	Start Server	
2	Stop Server	
3	Restart Server	
4	Execute Command

Read More

Comments on this File

There are no comments yet. Be the first!

Share This File
Embed File