====== Unreal4 Configuration Documentation ====== This is the in-depth documentation for your server configuration. **Because the core for Unreal4 is still being developed (pre-alpha), the items in this documentation may change drastically before an alpha is released, and then even more before we get to beta!** ===== About the Configuration File ===== ==== Differences ==== Unreal4's configuration file will appear to be much the same as Unreal3.2. One of the most noticeable changes is that directives in the configuration now contain capital letters to make them more readable. Note that many configuration directives have been renamed, moved, or simply just don't exist anymore. ==== Comments ==== Currently comments are lines prefixed with ''/''''/'' or ''#''. ==== Variables ==== There are some variables pre-defined for use in the configuration, as well as the ability to reference other configuration directives through the use of variables. If you want to reference a different part of the configuration, you simply but the directive notation inside a ''$()''. For example, if you wanted to get the Description directive from the Me Block, you would use ''$(Me::Description)''. As mentioned in the beginning of this section, Unreal has some built-in variables for use, which are as follows: * **DLLSuffix** Returns the proper module suffix for use with your OS and compile options. * **MODDIR** Returns the directory path for modules. * **Version** Returns the current core version. ===== Required Configuration ===== ==== Me Block ==== The Me Block defines basic information about your server. * **ServerName** The fully qualified domain name for this server. * **Description** This is the server description. It could be anything you want it to be, most admins make it a small description of the server, or put in a silly phrase. * **Network** The name of your network. This cannot contain spaces. * **Numeric** The unique server identifier on the network. This must be a number, 1-255. * **RactorPoolSize** The number of reactors to be running at the same time. * **Threads** Number of worker threads to be used for event reactors. Example of the Me Block Me { ServerName "irc.example.net"; Description "Example IRC Server"; Network "ExampleNet"; Numeric 1; ReactorPoolSize 1; Threads 0; }; ==== Admin Block ==== The Admin Block contains information returned to a user when they send the ADMIN command. * **Contact** This is a string containing simple contact information for the administrator. You are free to define it however you wish. * **Description** Basic description of this server, you can set it to the same as the Me Block, or set it differently if you desire. * **Location** Location of this server. Example of the Admin Block Admin { Contact "Server Administrator "; Description $(Me::Description); Location "Somewhere nice"; }; ==== Limits Block ==== The Limits Block sets the maximum limits for certain user-settable strings on your server. * **Awaylen** Sets the limit for the length of away reason. * **Channellen** Sets maximum channel name length. * **Nicklen** Sets the maximum nickname length. * **Topiclen** Sets the maximum channel topic length. * **Userlen** Sets the maximum username (ident) length (NOTE: This should be 10). * **PingFreq** Sets the default ping frequency for listen blocks. Example of the Limits Block: Limits { Awaylen 250; Channellen 24; Nicklen 18; PingFreq 120; Topiclen 250; Userlen 10; }; ==== Listener Block ==== Defines the ports users may use to connect to your server. You may have as many of these as you want. * **Address** The IP address to listen on. If you wish to listen on all IPs, use 0.0.0.0. However, if you are hosting this server on a shell account, this should be the IP address the shell provider assigned to your account or told you to listen on. * **Port** The port number to be listened on. * **MaxConnections** This is how many users may be connected to this port. If this is not defined, the default is 1024. * **PingFreq** The ping frequency for the users connected to this port. This is optional, and if not defined Limits::PingFreq will be used. * **Type** The listener type. This will either be set to Client or Server. Example of the Listener Block: Listener { Address "0.0.0.0"; Port 6667; MaxConnections 256; PingFreq 120; Type "Client"; }; ==== LoadModule Directive ==== Defines a module to be loaded when the server is started. Example of LoadModule: LoadModule modules/m_command.so; ===== Recommended Configuration ===== ==== Operator Block ==== Operator configuration for logging in as an oper. * **Name** The username of the operator this block belongs to. * **Password** The operator's password. Example of an Operator Block Operator { Name "foo"; Password "bar"; }; ===== Optional Configuration ===== ==== Include Directive ==== Includes a separate configuration file. This allows you to split up your configuration into multiple files. Many users to do this to simplify large configurations. Example of Include: Include "otherconf.conf";