              * * * * * * * * * * * * * * * * * * *
              *    Unrealircd.conf Documentation  *
              *     http://www.unrealircd.com     *
              *    Made for Version 3.2+ Daemon   *
              *            by devdev              *
              * * * * * * * * * * * * * * * * * * *


	* * * * T a b l e  o f  C o n t e n t s * * * *

		Section 1.0  :  Introduction
		Section 2.0  :  me{} line
			2.1  :     Syntax
			2.2  :     Variables
		Section 3.0  :  admin{} line
			3.1  :     Syntax
			3.2  :     Variables
		Section 4.0  :  class{} line
			4.1  :     Syntax
			4.2  :     Variables
		Section 5.0  :  allow{} line
			5.1  :     Syntax
			5.2  :     Variables
		Section 6.0  :  drpass{} line
			6.1  :     Syntax
			6.2  :     Variables
		Section 7.0  :  oper{} line
			7.1  :     Syntax
			7.2  :     Variables
			7.3  :     Oper Flags
			7.4  :     Flag Usage
		Section 8.0  :  listen{} line
			8.1  :     Syntax
			8.2  :     Variables
			8.3  :     Port Options
			9.0  :  link{} line
			9.1  :     Syntax
			9.2  :     Variables
			9.3  :     Link Options
	       Section 10.0  :  ulines{} line
		       10.1  :     Syntax
		       10.2  :     Variables
	       Section 11.0  :  tld{} line
		       11.1  :     Syntax
		       11.2  :     Variables
	       Section 12.0  :  ban{} line
		       12.1  :     ban nick{}
		       12.2  :     ban ip{}
		       12.3  :     ban server{}
		       12.4  :     ban realname{}
		       12.5  :     ban user{}
	       Section 13.0  :  except{} line
		       13.1  :     except ban{}
		       13.2  :     except socks{}
	       Section 14.0  :  vhost{} line
		       14.1  :     Syntax
		       14.2  :     Variables

	* * * * * * * * * * * * * * * * * * * * * * * *

1.0) Introduction:

	As you may have noticed, in this version of Unreal, the ircd.conf
	has changed dramatically and has a new name... unrealircd.conf.

	This will be a fully explanatory guide to the new unrealircd.conf
	Every aspect of the new config file is explained below.

2.0) me{} (Server Information Line):

	This is the same idea as the old M:line. Gives the server name,
	description, and numeric. This, however, does not include the ip
	of the server.

2.1) Syntax:
	me {
		name <server>;
		info "<description>";
		numeric <numeric>;
	};

2.2) Variables:
						
	<server> 	Server name 		(irc.network.com)
	<description>	Server description	(Network Hub)
	<numeric>	Connection Numeric	(Number 1-254)

3.0) admin{} (Administrator Line):

	This is the same as the A:line. This line gives information about
	the server owner/administrator including Name, nickname, and email.
	This is not restricted to a number of lines. Shown at /admin

3.1) Syntax:
	admin {
		"<line>";
	};

3.2) Variables:
	<line>	Text shown at /admin		(Admin Name)

	The "<line>"; can be repeated as many times as you wish. We suggest
	placing the admins nickname and an email to reach them at.

4.0) class{} (Connection Classes Line):

	These connection classes are used to define the ping freqency, maximum
	amount of clients, and sendq limit for a certain class.

4.1) Syntax:
	class <class name> {
		connfreq <connfreq>; /*server only*/	
		ping freq <pingfrq>;
		maxclients <maxclients>;
		sendq <sendqlimit>;
	};

4.2) Variables:
	<class type>	Name of connection class		(client, server, oper)
	<connfreq>	Seconds between connection attempts	(seconds)
	<pingfrq>	Ping Frequency (every x seconds)	(seconds)
	<maxclients>	Number of maximum connections		(number)
	<sendqlimit>	Limit for sends				(number)

5.0) allow{} (Allowed Connections):

	This line specifies from which hostnames/ips users can connect from and their
	restrictions.

5.1) Syntax:
	allow {
		ip "<ip>";
		hostname "<host>";
		class <classname>;
		password "<password>";
		maxperip <max>;
	};

5.2) Variables:
	<ip>		IP to allow connections from		(1.2.3.4)
	<host>		Hostname to allow connections from	(ident@host)
	<classname>	Class name to use defined above		(name)
	<password>	Password required for connection	(password)
	<max>		Maximum per ip address			(number)

6.0) drpass{} (Die/Restart Password):

	This line will defy the passwords required to restart or shutdown the irc server.

6.1) Syntax:
	drpass {
		die "<diepass>";
		restart "<restartpass>";
	};

6.2) Variables:
	<diepass>	Password to shutdown the server		(password)
	<restartpass>	Password to restart the server		(password)

7.0) oper{} (IRC Operator Line):

	This line will define who (after suppling a login and password) will be allowed to have certain permissions
	granted. Such as global kills compared to local kills, and being able to restart the server.

7.1) Syntax:
	oper <login> {
		class <classname>;
		from {
			userhost <host>;
			userhost <host>
		};
		password "<password>";
		flags {
			<flag>;
			<flag>;
		}
	};

7.2) Variables
	<login>		Login user name				(opername)
	<classname>	Class the oper will connect from	(class)
	<host>		Host the oper is allowed to op from	(ident@host)
	<password>	Password to accompany login-name	(password)
	<flag>		Flags to define permissions		(see 7.3)

7.3) Oper Flags (old and new)

	Old     | New		  |Description
	------- |---------------- |------------------------------
	N	| netadmin	  | Network Admnistrator
	T	| techadmin	  | Technical Administrator
	A	| admin		  | Server Administrator
	a	| sadmin	  | Services Operator
	C	| coadmin	  | Co Administrator
	o	| local		  | Local IRC Operator
	O	| global	  | Global IRC Operator
	r	| can_rehash	  | Is able to rehash the server
	e	| eyes		  | Can use the eyes message mode
	D	| can_die	  | Can shutdown the server (with password)
	R	| can_restart	  | Can restart the server (with password)
	h	| helpop	  | ..is available for help. Can see /helpops
	g	| can_globops	  | Can use /globops
	w	| can_wallops	  | Can use /wallops
	l	| locop		  | Can't kill remote users
	c	| can_localroute  | Can locally /connect and /squit servers
	L	| can_globalroute | Can globally /connect and /squit servers
	k	| can_localkill   | Can do local /kills
	K	| can_globalkill  | Can do global /kills
	b	| can_kline	  | Can set a /kline
	B	| can_unkline	  | Can unset a /kline
	n	| can_localnotice | Can send local notices
	G	| can_globalnotice| Can send global notices
	z	| can_zline	  | Can set /zlines
	^	| can_stealth	  | Is invisible to /names


7.4) Oper Flag Usage:

	Usage:
		flags oldflags;
	[or]
		flags { new flag; new flag; };

	Example:
		flags oN;
	[or]
		flags { netadmin; helpop; };


	Local operators are defined by having no additional flags in the oper line or if the IRCD finsd an error in 
	the flags, locop will be set (default).

8.0) listen{} (Available Ports):

	These line(s) define which ports the IRCd will be using. Ports that servers and clients can connect to.

8.1) Syntax:
	listen <ip>:<port>;
	{
 	 options
 	 {
  	     <option>;
 	     <option>;
	  };
	};

8.2) Variables:
	<ip>		IP Address to bind to			(1.2.3.4)	
	<port>		Port to listen on			(port)
	<option>	Option for the port to use		(see 8.3)

8.3) Port Options

	standard	Normally listens on the port
	ssl		Port is available to accept SSL connections.
	serveronly	Port can only have servers connect to it (not clients)
	clientsonly	Port can only have clients connect to it

9.0) link{} (Connecting Servers):

	This line will define what server can connect to yours.

9.1) Syntax:

	link <servername>;
	{
		username	<usermask>;
		hostname	<hostname>;
		bind-ip		<bindip>;
		port		<port>;
		hub *; 			   /* for connecting a hub */
		leaf *;			   /* for connecting a leaf */
		leaf-depth <leaf-depth>;   /* for connecting a leaf */
		password-connect "<cpassword>";
		password-receive "<rpassword>";
		class <class>;
		rsa-auth "<keypath>";
		options {
			<option>;
			<option>;
		};
	};

9.2) Variables
	<servername>	Server name to connect to		(server.network.com)
	<username>	Username for authenticating connection	(username)
	<hostname>	Hostname for authenticating connection  (hostname)
	<bindip>	IP your server will bind to to connect	(ip)
	hub or leaf	Place hub *; or leaf *; depending on
			what type of server you're linking to
	<leaf-depth>	Number of servers below yours		(number)
	<cpassword>	Password to send to the server		(password)
	<rpassword>	Password you expect to receive		(password)
	<class>		Class for servers			(classname)
	<keypath>	Path use for rsa-authentication		(keypath)
	<option>	Option used for connecting		(see 9.3)

9.3) Link Options

	autoconnect	Automaticlly tries to connect to the server
	ssl		Defines you are connecting to a SSL server
	zip		Will make them compressed later

10.0) ulines{} (Ulined Servers):

	This line will define servers that can have more control over the network. Services
	require this line in order to modify channels without being irc-operators.

10.1) Syntax:

	ulines {
		<server>;
		<server>;
	};

10.2) Variables:
	<server>	Server to be u:lined, can be infinate	(servername)

11.0) tld{} (MOTD and Rules by Domains):

	This line defines which hosts will read which set of MOTDs/Rules. For instance, if you have
	a bilingual network, connections from .fr can show a french MOTD and Rule file instead
	of the default ircd.motd and ircd.rules

11.1) Syntax:

	tld {
		mask <mask>;
		motd "<motd>";
		rules "<rules>";
	};	

11.2) Variables:
	<mask>		Mask that will define the new set	(ident@host)
	<motd>		Filename of the motd file		(filename)
	<rules>		Filename of the rules file		(filename)

12.0) ban{} (Bans):

	This line has many parts to it and can ban different things. See the sections below
	on more information on banning.

12.1) ban nick{}

	This line is used for restricting the use of certain nicknames

	Syntax:
		ban nick { 
  		     mask "<nickname>";
   		    reason "<reason>";
		};

12.2) ban ip{}

	Used for removing a entire ip from connecting.

	Syntax:
		ban ip { mask <ipaddress>; reason "<reason>"; };

12.3) ban server{}

	Used for restrictring a server from connecting to you.

	Syntax:
		ban server {
			mask <servername>;
			reason "<reason>";
		};

12.4) ban realname{}

	Used to keep select individuals with certain realnames off the server.

	Syntax:
		ban realname {
			mask "<real name>";
			reason "<reason>";
		};

12.5) ban user{}

	This line is the same as the old K:Lines. It bans a host mask from connecting.

	Syntax:
		ban user { mask <ident@host>; reason "<reason>"; };

13.0) except{} (Cannot Be Banned):

	Used to make sure your own IRCops dont ban you, or so you dont accidently ban an entire
	nation's worth of addresses, etc.

13.1) except ban{}

	This is so a realname and user cannot be banned.

	Syntax:
		except ban {
			mask <ident@host>;
		};

13.2) except socks{}

	This line is used so the socks server does not ban a client.

	Syntax:
		except socks {
			mask 216.73.27.177;	
		};

14.0) vhost{} (Vanity Hosts):

	The vhost{} line is used so a user can change their hostname from blah.dialup.com to
	a more fun hostname such as tends.to.write.some.really.evildocs.net
		/vhost <login> <password>

14.1) Syntax:

	vhost {
		vhost		<vhost>;
		from {
			userhost	<mask>;
		};
		login		<login>;
		password	<password>;
	};

14.2) Variables:
	<vhost>		Name of the vhost to use		(vhost)
	<mask>		Allowed masks to use the vhost		(ident@host)
	<login>		A login name to use			(login)
	<password>	Password to supply with login		(password)

