----------------------------------------------------------------------------------------
Remote Administration Documentation
----------------------------------------------------------------------------------------
This file describes the Remote Administration system, including:
1. How to Edit and Create your own Templates
2. Use the Remote Administration URL System

----------------------------------------------------------------------------------------
HTML Template Files:
----------------------------------------------------------------------------------------
These files are used by zsllite's remote administration feature, you 
may modify them to your own liking but remember to keep backups
incase you screw something up. You may also create your own template
files.

Inside these files are two types of markers:
1. Tags that use HTML Comments <!-- id_TagName -->
2. Labels that use PHP Style Variables $LabelName

!!! - DO NOT REMOVE THESE - !!!

Tags are insertion points for HTML files
Labels are insertion points for HTML Code or Text

You can use these to customize your web interface.

----------------------------------------------------------------------------------------
Required Locations:
----------------------------------------------------------------------------------------
1. main - Main is where all other locations are injected into
2. login - Login Page
3. changeinfo - Change User Information Page

----------------------------------------------------------------------------------------
Remote Administration locations
----------------------------------------------------------------------------------------
All Remote Administration locations are defined inside 
the file: locations.cfg

Each location is defined as below:

#
# Comment
#
[Location_ID] 	- URL Location ID
reserved 		- Reserved Tag
title 		- Title of location (set to none if no title is specified)
processing 	- Type of Processing (none, basic, lists, advanced)
access_level 	- Access Level (all, view, edit)
file 		- HTML Template File
uservars 		- User Variables (none or varname:$LabelName, ...)
inject 		- Inject this into another location (Location_ID:id_TagName)
remember	- Can you be sent back to this location?
refresh		- Page Autorefresh (Seconds)

----------------------------------------------------------------------------------------
Remote Administration URL System:
----------------------------------------------------------------------------------------
1. Base URL 	?radmin=true

----------------------------------------------------------------------------------------
Basic Actions:
----------------------------------------------------------------------------------------
1. Generic 	?radmin=true&user=<Username>&action=<Action>
2. Login User 	?radmin=true&user=<Username>&action=loginuser&password=<Password>
3. Change Info 	?radmin=true&user=<Username>&action=changeinfo&password=<Password>&newpass=<New Password>
4. Logout		?radmin=true&user=<Username>&action=logout

----------------------------------------------------------------------------------------
View Actions:
----------------------------------------------------------------------------------------
1. View Login	?radmin=true&action=login
2. View Change Info ?radmin=true&action=cinfo
3. View Location	?radmin=true&user=<Username>&action=view&location=<Location>&<User Variables>

----------------------------------------------------------------------------------------
Edit Actions:
----------------------------------------------------------------------------------------
1. Edit Server Item	?radmin=true&user=<Username>&action=edit&server=<PID>&item=<Item ID>&data=<Item Data>

----------------------------------------------------------------------------------------
Server Actions
----------------------------------------------------------------------------------------
1. Stop Server	?radmin=true&user=<Username>&action=stopserver&server=<PID>
2. Start Server	?radmin=true&user=<Username>&action=startserver&server=<PID>
3. Restart Server	?radmin=true&user=<Username>&action=restartserver&server=<PID>
4. Hide Server	?radmin=true&user=<Username>&action=hideserver&server=<PID>
5. Show Server	?radmin=true&user=<Username>&action=showserver&server=<PID>
6. Save Server	?radmin=true&user=<Username>&action=saveserver&server=<PID>
7. Clear Events	?radmin=true&user=<Username>&action=clearevents&server=<PID>

----------------------------------------------------------------------------------------
Global Server Actions:
----------------------------------------------------------------------------------------
1. Clear Stopped	?radmin=true&user=<Username>&action=clearstopped	
2. Stop All	?radmin=true&user=<Username>&action=stopall
3. Run From File	?radmin=true&user=<Username>&action=runfromfile&filename=<Server File>&runoptions=<Run Options>
4. Load Server File ?radmin=true&user=<Username>&action=loadfromfile&filename=<Server File>
5. New Server	?radmin=true&user=<Username>&action=newserver&filename=<Filename>&title=<Server Title>

----------------------------------------------------------------------------------------
Remote Admin Actions:
----------------------------------------------------------------------------------------
1. Disable RAdmin	?radmin=true&user=<Username>&action=disablera
2. View About	?radmin=true&user=<Username>&action=about	

----------------------------------------------------------------------------------------
Processing Labels:
----------------------------------------------------------------------------------------
Processing Labels are tags placed inside template files that get replaced with
various data during processing. All labes are NOT Case Sensitive.

There are three types of Processing:
1. None 		- No Processing at all
2. Basic		- Basic Processing (User Information)
3. Lists		- List Processing (Gets User and List Information)
3. Advanced	- Advanced Processing (All Processing)

Tip: Make sure HTML lines with Labels in them are not too long and that no labels are
broken up into two lines.

Below are the supported Processing Labels in this release.

----------------------------------------------------------------------------------------
Basic Processing:
----------------------------------------------------------------------------------------
$ProcID = ZProcess ID (if one was specified)		(Integer)
$DocTitle = Location Title				(String)
$UserID = Current User Name 			(String)
$UAccessID = Current User Access ID 			(String)
$LoggedIn = Login Status				(Boolean 1/0)
$LoginIP = Login IP Address				(String)
$Version = Remote Administration Version 		(String)
$ZSL_Version = ZDaemon Server Launcher Version 	(String)
$ServerIP = Server IP Address 			(String)
$Filename = Server File Name			(String)
$Filepath = Server File Path				(String)
$Title = Server Title				(String)
$UserVer = User File Version				(String)
----------------------------------------------------------------------------------------
Basic Processing - Access Labels:
----------------------------------------------------------------------------------------
$Access_StartServers				(checked, blank)
$Access_StopServers				(checked, blank)
$Access_RestartServers				(checked, blank)
$Access_EditServers				(checked, blank)
$Access_LoadServers				(checked, blank)
$Access_SaveServers				(checked, blank)
$Access_ViewServers				(checked, blank)
$Access_ChangeSettings				(checked, blank)
$Access_DisableAdmin				(checked, blank)
$Access_ChangePassword				(checked, blank)
$Access_ClearHistory				(checked, blank)
$Access_SeeAllServers				(checked, blank)
$Access_AccountDisabled				(checked, blank)

----------------------------------------------------------------------------------------
List Processing:
----------------------------------------------------------------------------------------
$CProc_ID = Current ZProcess ID			(Integer)
$ServerCount = Number of Servers 			(Integer)
$RunningCount = Number of Running Servers 		(Integer)
$VisibleCount = Number of Visible Servers		(Integer)
$EventCount = Event Count				(Integer)
$ErrorCount = Error Count				(Integer)
$CFile = Current Filename				(String)
$CPath = Current Filepath				(String)
$CEvent = Current Event				(String)
$ServerIP = Server IP Address 			(String)
$CProc_Banner = Current Server Banner		(String)
$CProc_Port = Current Server Port			(Integer)
$CProc_RunStatus = Current Server Run Status  		(String)
$CProc_CrashCount = Current Server Crash Count	(Integer)
$CProc_ID = Current Server ID			(Integer)
$UserID = Current User ID				(Integer)

----------------------------------------------------------------------------------------
Advanced Processing: (All require a PID)
----------------------------------------------------------------------------------------
$ProcID = ZProcess ID				(Integer)
$ProcRunning = Running Status			(Boolean 1/0)
$CrashCount = Crash Count				(Integer)
----------------------------------------------------------------------------------------
Advanced Processing - Server Information Labels: 
----------------------------------------------------------------------------------------
$Server_AvailWadList				(Option List)
$Server_PWadList					(Option List)
$Server_PWadListX					(Comma Deliminated List)
$Server_OWadList					(Option List)
$Server_OWadListX				(Comma Deliminated List)
$Server_MapList					(Comma Deliminated String List)
$Server_MapListX					(Comma Deliminated List)
$Server_AvailBotList				(Option List)
$Server_BotList					(Option List)
$Server_BotListX					(<BR> Deliminated List)
$Server_Autoexec					(String List)
$Server_AutoexecX					(<BR> Deliminated List)
$Server_CVars					(String List)
$Server_CVarsX					(String List)
$Server_Weburl					(String)
$Server_Email					(String)
$Server_IWad					(String)
$Server_RconPassword				(String)
$Server_RconPasswordMasked			(String)
$Server_Password					(String)
$Server_PasswordMasked				(String)
$Server_Banner					(String)
$Server_MOTD					(String)
$Server_Runtype					(String)
$Server_Executable				(String)
$Server_Creator					(String)
$Server_Format					(String)
$Server_UserVer					(String)
$Server_Title					(String)
$Server_Filename					(String)
$Server_Filepath					(String)
$Server_TeamDamage				(Float)
$Server_AirControl					(Integer)
$Server_Port					(Integer)
$Server_TeamScoreLimit				(Integer)
$Server_MaxTeams					(Integer)
$Server_Skill					(Integer)
$Server_SkillX					(String)
$Server_MaxClients				(Integer)
$Server_MaxPlayers				(Integer)
$Server_MaxPlayersPerTeam				(Integer)
$Server_FragLimit					(Integer)
$Server_TimeLimit					(Integer)
$Server_SpamLimit					(Integer)
$Server_SpamWindow				(Integer)
$Server_DMFlag1					(Integer)
$Server_DMFlag2					(Integer)
$Server_GameType					(Integer)
$Server_GameTypeX				(String)
$Server_Gravity					(Integer)
$Server_LogDisposition				(Integer)
$Server_NBots					(Integer)
$Server_Advertise					(Integer)
$Server_AdvertiseX					(String)
$Server_MinPlayers					(Integer)
$Server_RemoveBots				(Integer)
$Server_KillLimit					(Integer)
$Server_PrivateGame				(Boolean 1/0)
$Server_RconEnabled				(Boolean 1/0)
$Server_RandomBots				(Boolean 1/0)
$Server_KCL					(Boolean 1/0)
$Server_KFWL					(Boolean 1/0)
$Server_KFL					(Boolean 1/0)
$Server_KGL					(Boolean 1/0)

----------------------------------------------------------------------------------------
Edit Mode - Server Setting Items:
----------------------------------------------------------------------------------------
Item ID			Item Information		Param Type
----------------------------------------------------------------------------------------
1. banner  		Server Banner 		Takes a string
2. dmflag1  		DMFlag1 value 		Takes an integer
3. dmflag2  		DMFlag2 value 		Takes an integer
4. pwadlist 		PWad list 		Takes a string of names deliminated by ','
5. owadlist  		Optional wad list 		Takes a string of names deliminated by ','
6. iwads  		IWad value 		Takes a string
7. gametype  		Game Type 		Takes an integer
8. weburl  		Server Website URL	Takes a string
9. email  			Admin Email Address	Takes a string
10. port 	 		Server Port		Takes an integer
11. timelimit 		Timelimit			Takes an integer
12. fraglimit  		Fraglimit 			Takes an integer
13. maxclients  		Maximum Clients 		Takes an integer
14. maxplayers 		Maximum Players 		Takes an integer
15. skill 	 		Skill Level		Takes an integer
16. motd  		Message of the Day 	Takes a newline delminated string
17. rconenabled  		Rcon Enabled 		Takes a boolean (true or false)
18. rconpass  		Rcon password 		Takes a string
19. privategame  		Private Server 		Takes a boolean (true or false)
20. password  		Server Password		Takes a string
21. botlist  		Botlist 			Takes a string of names deliminated by ','
22. minplayers  		Bot Min Players		Takes an integer
23. removebots  		Remove Bots		Takes an integer
24. ranmode  		Random Bot Mode	 	Takes a boolean (true or false)
25. bots 			Random Amount		Takes an integer
26. maplist  		Maplist			Takes a string of names delminated by ','
27. advertise		Advertise Option		Takes an integer
28. spamwindow		Spam Window		Takes an integer
29. spamlimit  		Spam Limit 		Takes an integer
30. teamscorelimit 	Team Score Limit		Takes an integer
31. maxplayersperteam	Maximum Players Per Team	Takes an integer
32. maxteams		Maximum Teams		Takes an integer
33. gravity		Gravity			Takes an integer
34. teamdamage		Team Damage		Takes an floating point
35. executable		Server Executable		Takes a string
36. cvars			CVars			Takes a quoted string list delminated by newlines
37. autoexec		Autoexec			Takes a quoted string list delminated by newlines
38. disposition		Log Disposition		Takes an integer
39. log_kcl		Keep Connection log	Takes a boolean (true or false)
40. log_kfwl		Keep Frag\Weapon log	Takes a boolean (true or false)
41. log_kfl		Keep Frag log		Takes a boolean (true or false)
42. log_kgl		Keep General log		Takes a boolean (true or false)
43. runmode		Run mode		Takes a string (rn, rm, rh)
44. killlimit		Kill Limit (coop)		Takes an integer

----------------------------------------------------------------------------------------
Contact Information:
----------------------------------------------------------------------------------------
Email Doom2pro@gmail.com Subject zsllite
IRC PM Doom2pro