Swbf2admin
Star Wars Battlefront II (2005) server management application
Install / Use
/learn @jweigelt/Swbf2adminREADME
SWBF2Admin
A modern, easy-to-use server manager for Star Wars Battlefront II (2005) dedicated servers
Getting Started
These instructions will get you a minimal SWBF2Admin setup up and running. SWBF2Admin is highly configurable - for advanced configuration techniques or more detailed instructions, please also check out the "Advanced" section of this document.
Prerequisites
SWBF2Admin requires the following software to be installed on the host machine:
- .NET Framework(or equivalent) v4.6.1 or newer (https://www.microsoft.com/net/download/windows)
- Visual C++ Redistributable x86 2015: (https://www.microsoft.com/en-us/download/details.aspx?id=48145)
If you are planning on hosting a GoG/Steam server you will also need a GOG Galaxy account owning SWBF2.
Using the Steam client for hosting is currently not supported.
Minimal setup
Extract all files to a destination of your choice, run SWBF2Admin.exe. You will be prompted to set webadmin credentials. Enter username and password of your choice. Close SWBF2Admin afterwards.
Navigate to the ./server folder in SWBF2Admin's installation directory. Right click RconServer.dll -> Properties. Check the Unblock option in the lower section of the dialog. Do the same for dlloader.exe.
Should you ever forget your credentials, run reset_webcredentials.bat. This will delete all web admin accounts and prompt you for new default credentials.
Optional: using the original server package
If you want to run the old dedicated server, open ./cfg/core.xml, set
<ServerType>Gamespy</ServerType>
Optional: allowing remote access to webadmin
By default, the web panel will only be accessible from the local machine. To change this, open core.xml and adjust
<WebAdminPrefix>http://localhost:8080/</WebAdminPrefix>
If you do not have a domain pointing to your server, you can also just use the server's IP-Address, for example
<WebAdminPrefix>http://192.168.1.234:8080/</WebAdminPrefix>
If you have any active firewall, the webadmin port (8080 TCP in this case) has to be unblocked.
If you prefer to use an encrypted connection, you may change the protocol specified in WebAdminPrefix from http:// to https://. Note that when using HTTPS, a matching SSL certificate has to be installed into your machine's certificate store.
Optional: enabling runtime managament
If you want to use features like ingame commands, announce broadcast, statistics ..., runtime management has be enabled.
To enable runtime management, open ./cfg/core.xml, set
<EnableRuntime>true</EnableRuntime>
! When using runtime management, the !gimmeadmin command will add the first user to execute
! it to the "Admin" group. Make sure you are the first one! The command is deactivated after one use.
! When using the GOG version, set GamePort & RconPort in Server Settings to the same value.
Preparing the gameserver
Depending on which platform you want to use, EITHER follow the "GoG / Steam" OR the Gamespy / "Swbfspy" guide.
GoG / Steam
! Neither the GOG communications server nor GOG Galaxy works over Windows Remote Desktop.
! You can use tools like VNC or Chrome Remote Desktop instead.
! Launching any part of the server over Windows Remote Desktop causes it to not show up in the server listing.
- Install GOG Galaxy (https://www.gog.com/galaxy)
- Using GOG Galaxy, download Star Wars Battlefront II
- In GOG Galaxy, open Battlefront II in your library. Click on
More -> Manage installation -> Show folder - A Explorer Window will open, open
GameDataand copy all contents to the./serverfolder in SWBF2Admin's installation directory
Do not uninstall the original game or GOG Galaxy after copying the data.
Gamespy / "Swbfspy"
- Install the original dedicated server package
- Copy the contents of it's installation folder (the one containing
BattlefrontII.exe) to theserverfolder in SWBF2Admin's installation directory
First launch
- Start
SWBF2Admin.exe - Using your web browser, open the web panel. By default, the web panel is accessible at http://localhost:8080/
- Go to
Server Settings -> General, adjust server settings to your liking. Make sure that a network adapter is selected underbind address - Go to
Server Settings -> Map rotation. Add maps using drag&drop. - Go to
Dashboard, click onServer status -> "Start - If you chose to enable runtime management, join your server in game and enter
!gimmeadminin chat
Advanced
Using the web panel
Dashboard
The dashboard page show status information on your server. It also provides the big not-so-red button which is used to start and stop your server. When your server is running, the status information will be updated automatically every 20~30 seconds.
The dashboard's icon in the navigation bar will change color depending on your server's current status.
- red: server is offline
- green: server is online
- yellow: server is starting/stopping
Players
The players page displays a list of all players who are connected to the server. The list is updated automatically every 10~15 seconds.
Right-clicking a player will bring up a context menu containing buttons for quick administation.
- Swap player's team
- Kick player
- Ban player
If you click on "Ban player", a dialog will open asking you to specify the ban's duration and the ban's type. If "permanent" is selected, the duration field will be ignored.
Chat
The chat page provides you a live feed of the server's ingame chat. You can also send messages which will be shown ingame. Add a /admin prefix to send administrative commands. The command output is sent back to your browser.
Bans
The bans page lets you manage all banned players. You'll find various filter options in the page's top section. Text fields don't have to be exact matches. Similar results will be shown as well.
- Player: banned player's nick
- Admin: name of the admin who submitted the ban
- Reason: reason specified for the ban
- Date: only bans which were created after the given date will be shown
- Expired: also show expired bans
- Type: whether the player's IP-Address or CD-Key was banned
To delete a ban, just right click it. A context menu will show up - click on "Delete ban".
Settings
Once you made any changes, the page will notify you that the changes weren't saved yet. Five seconds after you made your last change, all settings will automatically be saved. Settings are also saved immediately if you change to another page, so you don't have to wait.
Settings / General
This page lets you change your server's basic parameters.
Settings / Game
This page lets you change your parameters adjusting the gameplay.
Settings / Map Rotation
This page let's you adjust your servers map rotation. Simply grab the map you want to add from the table on the left. Drag&drop it to the table on the right. A dialog will open, asking you to select the game modes you want to add. After doing so, click OK and the maps will be added. If you want to cancel the dialog, just click on the red cross in the top right corner. This will leave your map rotation untouched.
If you want to remove a map from the rotation, just drag&drop it from the right table to the left table.
Users
If you want to edit your webadmin username / password or want to add additional users, you can do so on this page. Right-clicking on any user will give you the options to delete or edit a user or create a new one.
If you're editing an existing user but don't want to change his password, leave the password fields untouched. The password will not be updated. If you chose create or edit, a dialog box will open which lets you edit the users properties.
Notes:
- The delete option won't appear for your own account
Statistics tracking
To enable statistics tracking, open ./cfg/game.xml, set
<EnableGameStatsLogging>true</EnableGameStatsLogging>
if you want to track player statistics as well, open ./cfg/players.xml, set
<EnablePlayerStatsLogging>true</EnablePlayerStatsLogging>
Automatic announce broadcasts
Configuring the announce scheduler
Open ./cfg/announce.xml
- Set
Enableto true to enable automatic announce scheduling - Adjust
Intervalto configure the delay between broadcasts
You can now add as many announces as you like to the <AnnounceList> attribute.
Announces must have the following format:
<Announce EnableParser="true/false" Message="YourMessage"/>
Variables
If EnableParser is set to true, the Announce is parsed before broadcasting it. The following tags are replaced:
|Tag|Description| |------|------| |{s:map}|current map| |{s:ff}|friendly fire enabled (0/1)| |{s:gm}|gamemode| |{s:heroes}|heroes enabled (0/1)| |{s:maxplayers}|max. players| |{s:nextmap}|next map| |{s:password}|server password| |{s:players}|current playercount| |{s:ip} |server's ip-address| |{s:name}|servers name| |{s:t1score}|team 1's score (CTF)| |{s:t2score}|team 2's score (CTF)| |{s:t1tickets}|team 1's reinforcements (CON/ASS/HUNT)| |{s:t2tickets}|team 2's reinforcements (CON/ASS/HUNT)| |{s:version}|server's version| |{g:nr}|current game's id| |{banner}|SWBF2Admin's version infos| |{t:(format)}|current time formatted by given format string|
Using the {t:(format)} tag
The {t:(format)} tag can be used to display the current time. Replace (format) with a format string.
The given formatter has to be a .NET-style format string. (see https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings for reference)
Example for a broadcast displaying the current time in HH:mm:ss format:
<Announce EnableParser="true" Message="Current time {t:HH:mm:ss}"/>
Automatic conditional broadcasts
Conditional broadcasts can be used to trigger custom messages if a special event is observed. Special eve
