Jump to content
Spartans Home

FC2 - Possibility for a Sparta Dedi Server ?


Batwing~SPARTA~
 Share

Recommended Posts

Hi there, this is to the Sparta Admins mostly.

 

As some of you may know, FC2 does not come out of the box with a Dedi Server option. However, the Community created what many online groups are actually using (see 104th dedi Server and many more).

 

It is called SERVMAN and although still considered a beta, is perfectly working and is the solution adopted by whoever is running a Dedi for this game.

 

It also says that making a modification to some files, it would be possible having the Server running on the F10 map, instead of rendering the 3D world, which probably would drastically reduce the machine requirements in terms of videocard requirements. This is my assumption, unfortunately I have no way to confirm this.

 

I attached here the README with all the server specific for you to take a look at and evaluate a chence to have a Sparta Dedi Server.

 

Thank you very much.

 

-------------------------------------------------------------------

-- SERVMAN SERVER MANAGEMENT MOD V2.x

-------------------------------------------------------------------

 

-------------------------------------------------------------------

-- 0. TABLE OF CONTENTS

-------------------------------------------------------------------

 

1. INTRODUCTION

2. DISCLAIMER

3. CHANGELOG

4. INSTALLATION

5. DEINSTALLATION

6. SETUP AND SERVER CONFIGURATION VARIABLES

7. LANGUAGE SUPPORT

8. SUBADMINS

9. IP AND NAME BANNING

10. RUNNING THE MOD

11. LOGFILES AND SERVER MESSAGES

12. SERVER COMMANDS FOR SERVER HOSTS/SUBADMINS

13. SERVER COMMANDS FOR REGULAR PLAYERS

14. SUPPORT AND BUG REPORTS

15. KNOWN ISSUES

16. CREDITS

 

 

-------------------------------------------------------------------

-- 1. INTRODUCTION

-------------------------------------------------------------------

 

Hello,

and thank you for downloading the ServMan Server Management Mod for Flaming Cliffs 2.

The aim of this mod is to improve the multiplayer experience. ServMan enables a chat based server management interface and gives both server hosts and regular players a few additional options that normally would be expected from a dedicated server, like:

 

- automatic kicking for teamkills (human and AI)

- automatic kicking for too low score

- automatic kicking for team-damaging other players

- automatic kicking for high average ping

- automatic banning after too many kicks

- reporting/logging of team collisions

- banning single IPs and whole IP ranges

- remote masterbanlist that can be downloaded via http

- penalty time after kick

- extended event logging including a chatlog

- automatic mission restarting or rotating

- manual kicking, banning and mission loading

- message of the day and server rules

- (un-)locking the server

- appointing subadmins

- votekicks

- missionvotes/-polls

 

Since FC2 is just released there are some issue you need to be aware of:

- Multiple kill messages from the original FC2

- Maddog missiles / multikill / shooter dies too early may cause unwanted Teamkills or Friendly Fire incidents.

With that in mind - be sure that you monitor how often your server kicks people for friendly fire incidents.

Also, keep in mind that after a default of 3 TK/FF players may get banned. For this reason alone you may need to

adjust the parameters in the serverconfig.lua.

 

And please note - we haven't updated all the text in this document yet so you may find alot of references to Ka-50 and DCS:BS.

 

Happy Server administration.

- Panzer & Yoda, out.

 

--------------------

Acedy, guru and entrepreneur of original ServMan - a final statement:

--------------------

Please note: v2 for DCS is the last version of this mod that will be developed by myself.

However, since I am aware that alot of servers are using it, I have been looking for successors to

make sure that the mod is not going to die. Fortunately Panzertard and Yoda have volunteered to

continue the work, so from now on they are the new developers of this tool. Many thanks fellas for

stepping up!! I know the mod will be in good hands.

 

I hope you enjoy using this tool :)

Acedy

 

 

 

-------------------------------------------------------------------

-- 2. DISCLAIMER

-------------------------------------------------------------------

 

This mod is not an official add-on supported by Eagle Dynamics/The Fighter Collection, it is a third party addition created and supported by me. You understand that DCS:Black Shark currently does not contain a dedicated server option, so installing this mod to use Black Shark as a "pseudo-dedicated" server may cause unforeseeable problems. You agree that you may only use this mod at your own risk, and that you cannot hold me liable for any issue or damage caused by its usage. You also understand that by using this mod you allow players a significant amount of control both over your server and the gameplay experience of other players, so use it with care!

 

The mod extends the original server.lua and events.lua files in the ./LockOn Flaming Cliffs 2/Scripts/net/ folder, as suggested in the readme.txt file in that folder. All rights regarding these file belong to Eagle Dynamics. The mod also uses parts of the LuaSocket and LuaFileSystem libraries that are free software, released under the MIT license. The files of both libraries are being shipped with Black Shark, however the mod archive contains some files of the LuaSocket library, because for the mod to work correctly they need to be placed in another than the default location.

 

 

-------------------------------------------------------------------

-- 3. CHANGELOG

-------------------------------------------------------------------

 

v.2.1.4 alpha for FC2

Resolved:

- Kick+Ban in all variants works as expected.

- UNKNOWN PLAYER messages is gone.

- Fixed a minor problem with first mission in the mission list being repeated twice when mission-rotation was active.

 

Improvements:

- TEAM-chat messages is prefixed to all recievers with "#TEAMMSG: "

If you see "#TEAMMSG panzer is a dork" from a BLUE - then RED cant see it and you know it's intended for your team only.

Note: When *you* type a TEAMMSG you wont see "#TEAMMSG" on your screen.

- /missions now indicates which mission that is loaded and active. Look for ->1<- around the mission ID.

- Chat-loggin. Look for the "ServMan-Chatlog-<datetime>.log". It will now log everything you see in the chat on the server. Kills, deaths, damages, kicks etc.

- Server-logging. Look for the "ServMan-Serverlog-<datetime>.log"

New "loglevel" variable for logging detail level, see "serverconfig.lua" for details. Valid levels are 0 to 3.

Note: The format in the file may change in the future.

For you who look for a file to parse for your web - don't despair.

Coming soon is a pure "result / stats" based log.

 

v.2.1.0 alpha for FC2

- Compatability for FC2, reworking of the server/events to be compatible with FC2. Breaks compatability with DCS:BS.

- Added out for chatlogs, all ingame text should be save, events like ejections & kills. All in one and the same log for easier reading.

- More server events and callbask added for the server-net* logs.

 

Changes in v2:

 

- added compatibility with BS v1.0.1

- added automatic kicking for team-damaging human players

- added reporting/logging of team collisions

- added manual name banning

- added selective message sending to single players (no more message flooding)

- added support for other languages (German localization included)

- added kicking for high average ping

- added /report command

- added a new option that forces players to wait x minutes before they can start another votekick or missionvote/-poll

- added additional checks to make sure that the logic which checks teamkills distinguishes human and AI players correctly

- changed event triggering to use new on_process() API-callback, no more use of player ping and chat

- fixed a bug where the kick counter would be increased too much when more than one kick rule applied to the same event

- reactivated screenshot message to get rid of the "Unknown command: /mybad" message

- fixed a logic bug where a human player with name "" could be mistaken as AI. Empty names are now banned by default

- fixed the problem that the mod had to be uninstalled before playing as client

 

 

-------------------------------------------------------------------

-- 4. INSTALLATION

-------------------------------------------------------------------

 

The mod requires Flaming Cliffs 2.

 

You can either install the mod manually (1) or by using ModMan (2). There are different .zip archives for each installation method, so please make sure that you have the correct .zip file!

 

(1) Standalone: After downloading the standalone .zip archive containing the mod's files, move the archive to Black Shark's root folder (./Eagle Dynamics/LockOn Flaming Cliffs 2/), unzip it and allow overwriting. The archive contains backups of the original files, but if you want to play safe, backup the following files before unzipping: ./LockOn Flaming Cliffs 2/Scripts/net/server.lua and ./LockOn Flaming Cliffs 2/Scripts/net/events.lua.

If you use Windows Vista and Black Shark is installed into the default "Program Files" directory tree, make sure that your Zip-tool has write access rights to the "LockOn Flaming Cliffs 2" folder (and subfolders) and that you run Black Shark as administrator, otherwise you may encounter problems.

 

(2) ModMan: If you want to use ModMan, just move the ModMan compatible .zip archive to the ./ModMan/addons_dcs/ folder, start ModMan and enable the mod.

 

ServMan is a pure server-side mod, so clients connecting to your server do not need any additional files.

 

Please note that the ./LockOn Flaming Cliffs 2/Missions/Multiplayer/ folder must contain at least one mutiplayer mission, otherwise the mod will not work correctly.

 

 

-------------------------------------------------------------------

-- 5. DEINSTALLATION

-------------------------------------------------------------------

 

To uninstall the mod, restore the original server.lua and events.lua files by copying them from the ./LockOn Flaming Cliffs 2/Scripts/net/Backup/ folder to the ./LockOn Flaming Cliffs 2/Scripts/net/ folder (allow overwriting).

 

After that delete the following files/folders:

 

./LockOn Flaming Cliffs 2/Scripts/net/serverconfig.lua

./LockOn Flaming Cliffs 2/Scripts/net/ServMan_v2_ReadMe.txt

./LockOn Flaming Cliffs 2/Scripts/net/banlist.txt

./LockOn Flaming Cliffs 2/Scripts/net/translations.lua

./LockOn Flaming Cliffs 2/Scripts/net/events_orig.lua

./LockOn Flaming Cliffs 2/Scripts/net/Backup/

./LockOn Flaming Cliffs 2/LuaSocket/socket/

 

 

-------------------------------------------------------------------

-- 6. SETUP AND SERVER CONFIGURATION VARIABLES

-------------------------------------------------------------------

 

ServMan can be configured by editing the ./LockOn Flaming Cliffs 2/Scripts/net/serverconfig.lua and ./LockOn Flaming Cliffs 2/Scripts/net/banlist.txt files. The banlist.txt file is a simple text file containing banned IPs, which will be covered in section 9. The serverconfig.lua file uses the syntax of the Lua programming language, but do not worry, you do not need any knowledge of Lua to edit it, all options will be explained in this and the following sections. What you need though is the Notepad++ text editor, please do not use the standard Windows Editor to edit the file, because it may lead to file corruption. You can download Notepad++ for free from here:

 

http://notepad-plus.sourceforge.net/uk/site.htm

 

When you open the serverconfig.lua file in Notepad++, you can see that it is divided into four sections: a) server configuration variables, B) sub-administrators, c) banned IP ranges and d) banned_names. You will also notice that the file is heavily annotated, there are lots of comments to tell you what each options does. Every line that starts with two minuses '--' is an explaining comment, and paragraphs enclosed in opening '--[[' and closing ']]' tags are comments as well, they serve as formatting examples. Notepad++ displays comments in green by default.

 

The first section contains the table 'config'. A table in Lua is basically a collection of variables and the values assigned to these variables, enclosed in curly brackets '{' and '}' and separated by commas. In our case the variables of the 'config' table are server options/functionalities and the values determine how the corresponding server functionality works. Hence each option in this table has the following structure: '<variable name> = <value>,'. Note that all options are separated by commas, and it is a common mistake to delete these commas accidentally, so after editing the values make sure that the comma is still there when saving the file. Only the comma after the last variable of a table is optional.

 

Most functions of ServMan can be enabled, disabled or configured by editing the values behind the equal '=' sign after the option's name. To change a value, simply overwrite it in Notepad++ and save the file. Each value has a specific type, which may be:

 

a) integer numbers like '-15', '0' or '100'

B) boolean constants: 'true' or 'false'

c) text strings like '"abcd1234&/"'. Note that strings have to be enclosed in double quotes, and they may not contain the following characters: '\', '%', '"'

 

Some variables have further restrictions like only positive integers or zero. If you accidentally change an option to a value that is not allowed, then after starting the server the mod will use the internal default value as specified after each variable, which usually disables the corresponding function, and write an error message to the net-server.log logfile (see below). So make it a habit to check the logfile after editing the configuration and starting your server!

 

The serverconfig.lua file will be reloaded each time a mission starts and also by using the '/reinit' command, this way you can update the server configuration during runtime, without the need to restart the server.

 

Now lets see how you can adjust the configuration of ServMan to your liking. The following options are available:

 

* language = <string> (default is "en")

 

This option determines the language that the mod uses for server messages, which it sends to other players. The default language is English ("en"). So far the mod provides only a German translation, to enable it change the value to "de". You can add your own translation to the ./LockOn Flaming Cliffs 2/Scripts/net/translations.lua file. Please refer to section 7. "LANGUAGE SUPPORT" for details on how to do this.

 

 

* missionvotes = <boolean> (default is 'false')

 

If set to 'true', this option allows players to start a missionvote for loading a specific mission (using the '/votemiz:<id>' command), or a missionpoll to let players decide which mission to load next (using the '/mizpoll' command). Set it to 'false' to disable missionvotes/-polls.

 

 

* votekicks = <boolean> (default is 'false')

 

If set to 'true', this option allows players to start a votekick (using the '/votekick:<id>' command) where every player can vote if the specified player should be kicked from the server or not. Set it to 'false' to disable votekicks.

 

 

* vote_timeout = <positive integer> (seconds, default is '60')

 

This variable determines the time (in seconds) how long a vote/poll is open for players' votes. After the time expired the vote/poll will be closed and evaluated. Must be positive.

 

 

* min_votes_in_percent = <0...100> (percent, default is '0')

 

This variable determines how many players (in percent of all players on the server) need to vote in a vote/poll for the vote/poll to be valid. If there are not enough votes the result will be discarded. For example if this value is 50 (%) and there are 8 players on the server, a vote/poll will be discarded if 3 or less players voted, and it will be evaluated and the resulting action will be triggered when 4 or more players voted. The value must be between 0-100. If it is '0' then every vote/poll is valid even if nobody voted. If it is '100' all players have to vote. Note that the server host also counts as a player, so if you run a dedicated server (hosted on a computer in a server farm for example) that will never vote, you have to adjust the value accordingly so that the server is not taken into account. Example: say your dedicated server has 9 slots and you want that at least 50% of the players have to vote for a vote/poll to be valid. Since only 8 players at max. can vote, this means that at least 4 players have to vote, so you have to set the value to (4/9)*100 ~= 44 (take the next lower integer).

 

 

* time_between_votes = <positive integer or '0'> (minutes, default is '5')

 

This variable sets the time in minutes that a player has to wait between initiating two votes of the same kind (i.e. a missionvote/-poll or a votekick). It prevents that a player can block a votekick against himself by spamming votekicks against others, since there can only be one active votekick at a time.

 

 

* restart_miz_after = <positive integer or '0'> (minutes, default is '0')

 

This variable determines the time (in minutes) after which the current mission will be restarted automatically. Only actual playing time is taken into account, i.e. if the mission is paused the timer will not advance. Set to '0' to disable automatic mission restarting. Note that this option and the following 'rotate_miz_after' are mutually exclusive, mission rotation has priority, so if 'rotate_miz_after' is enabled then restarting will be disabled, regardless of this value.

 

 

* rotate_miz_after = <positive integer or '0'> (minutes, default is '0')

 

This variable determines the time (in minutes) after which the current mission stops and the next mission located in the ./LockOn Flaming Cliffs 2/Missions/Multiplayer/ folder will be started. Only actual playing time is taken into account, i.e. if the mission is paused the timer will not advance. The order of missions is the same as shown by the '/missions' command. Set to '0' to disable automatic mission rotating. Note that this option and the antecedent 'restart_miz_after' are mutually exclusive, mission rotation has priority, so if rotating is enabled then restarting will be disabled. Also note that, as said above, the ./Multiplayer folder must contain at least one mission, otherwise the mod will not work correctly.

 

 

* pause_if_server_empty = <boolean> (default is 'false')

 

If set to 'true' the current mission will be paused automatically when the last player exits the server. Set to 'false' to disable.

 

 

* resume_if_server_not_empty = <boolean> (default is 'false')

 

If set to 'true' the current mission will be resumed automatically when a new player enters an empty server (so the server is not empty anymore). If the server is not empty, a mission will also be resumed automatically ~1 minute after loading it (for example after automatic map rotation). Set to 'false' to disable.

 

 

* restart_if_server_empty = <boolean> (default is 'false')

 

If set to 'true' the current mission will be restarted automatically when the last player exits the server. Set to 'false' to disable.

 

 

* kick_after_teamkills = <positive integer or '0'> (default is '0')

 

This variable determines after how many teamkills (kills of human players of the same side) a player will be kicked automatically. Set to '0' to disable automatic kicking for teamkills. Subadmins who are logged in will not be kicked automatically. Note that this value and 'kick_below_score' are mutually exclusive, if this function is enabled then kicking for too low score will be disabled. Also note the following: a) If a player crashes into another player, Black Shark does not count this as kill, and there is no way for the mod to decide who is responsible for the crash, so crashing into each other does not count as a human teamkill. B) A player may damage but not kill another player of his team, however the player may crash due to the damage. Currently the mod cannot recognize this as a teamkill, because Black Shark does not trigger on_hit/on_damage events in the events.lua file.

 

 

* kick_after_AI_teamkills = <positive integer or '0'> (default is '0')

 

This variable determines after how many AI teamkills a player will be kicked automatically (i.e. player killing ownside units). Subadmins who are logged in will not be kicked automatically. Set to '0' to disable automatic kicking for AI teamkills. Note that this value and 'kick_below_score' are mutually exclusive, if this function is enabled then kicking for too low score will be disabled. Also note that Black Shark recognizes all static objects, regardless of their country/coalition, as 'Neutral', and there is now way for the mod to decide if the static object a player destroyed is friendly or not (for some strange reason Black Shark even awards a positive score for killing ownside static units). So if a player destroys a static object that belongs to his/her country/coalition, this does not count as an AI teamkill.

 

 

* kick_after_friendly_fire = <positive integer or '0'> (default is '0')

 

The number of friendly fire (damaging human teammates) incidents after which a player will be kicked automatically. Set to 0 to disable this function. Subadmins who are logged in will not be kicked automatically. Note that this value and 'kick_below_score' are mutually exclusive, if this function is enabled then kicking for too low score will be disabled.

 

 

* friendly_fire_interval = <positive integer or '0'> (seconds, default is '3')

 

This variable determines the minimum time in seconds after which a 2nd friendly fire event of one player against the same teammate will be logged/reported. If a player damages another with one shot Black Shark reports a lot of team damage events, so the interval reduces the number of events the mod logs, in order to distinuish separate friendly fire incidents. Set to 0 to log/report all friendly fire incidents (this may cause message spamming and the mod will very likely log more friendly fire events than actually happened).

 

 

* collision_interval = <positive integer or '0'> (seconds, default is '0')

 

This variable determines the minimum time in seconds between collisions of two teammates that will be logged in the logfile and reported to the other players. Set to 0 to disable collision logging/reporting. If two players collide once Black Shark reports a lot of collision events, so the interval reduces the number of events the mod logs, in order to distinuish separate collision incidents. Note that Black Shark cannot decide who is responsible for the collision, that is why there is no automatic kicking option, collisions will just be logged and reported.

 

 

* reset_TK_stats_on_miz = <boolean> (default is 'false')

 

If set to 'true' the teamkill counters of all players (for both human and AI teamkills) will be reset to zero when loading a new mission. If it is set to 'false', a player's teamkill stats accumulate over the course of missions.

 

 

* kick_below_score = <negative integer or '0'> (default is '0')

 

This variable determines the score below which a player will be kicked automatically. The score can only be negative. Set to '0' to disable automatic kicking for too low score. Subadmins who are logged in will not be kicked automatically. Note that this value on the one hand vs. 'kick_after_teamkills', 'kick_after_AI_teamkills' and 'kick_after_friendly_fire' on the other hand are mutually exclusive, kicking for (AI or human) teamkills or team damaging has priority over kicking for too low score, so if either of the kick for teamkill/-damage functions is enabled then this option will be disabled, regardless of its value.

 

 

* kick_after_max_ping_events = <positive integer or '0'> (default is '0')

 

The number of high average ping warnings after which a player will be kicked (except spectators and subadmins). Set to 0 to disable ping logging and kicking for high ping. The feature works like this: the 'max_average_ping' variable (see below) determines the maximum average ping allowed on your server. For each player (except spectators/subadmins) ServMan adds up the ping values of their last 100 ping events and then calculates the average ping. If it exceeds the value of this variable the player gets a high ping warning. Afterwards the sum is reset to 0 and the next 100 values will be counted, and so on. If the number of ping warnings a player has accumulated is >= the 'kick_after_max_ping_events' variable, he will be kicked. Note: BS fires a ping event for a player approx. once per second, so the time intervals during which ping values are recorded and after which an average is calculated and compared to the limit are ~100sec long. Using the average makes sure that occasional ping spikes do not influence the result that much. The main reason why the ping of spectators is not being taken into account is to discard possible high pings when a player connects to the server, or during map rotation, which may be a result of the increased network traffic caused by mission downloading.

 

 

* max_average_ping = <positive integer> (default is '500')

 

The maximum average ping allowed on your server. The average is calculated over the last 100 ping values, and only for non-spectating players (excluding subadmins). The option is only relevant when 'kick_after_max_ping_events' is > 0.

 

 

* wait_after_kick = <positive integer or '0'> (minutes, default is '0')

 

This variable determines the penalty time (in minutes) a player cannot reconnect after he has been kicked from the server. If a player reconnects before the penalty time expired, he/she will automatically be kicked again, however this kick does not have any other consequences like extending the penalty time or increasing the player's kick counter. Set to '0' to disable.

 

 

* autoban_after_kicks = <positive integer or '0'> (default is '0')

 

This variable determines after how many (automatic or manual) kicks a player's IP will be banned automatically. Subadmins who are logged in will not be banned. Set to '0' to disable. Note that if you kick a player using the 'kick' button in the player pool window, the kick will not be logged and the player does not have to face any other consequences (i.e. penalty time and increase of the kick counter), as Black Shark currently does not trigger any events in the server.lua file that could be used to log the kick. So if you want the kick to be logged, please use the '/kick:<id>' command instead.

 

 

* masterbanlist_URL = <string> (format: '"[http://][<user>[:<password>]@]<host>[:<port>][/<path>]"', default is '""')

 

ServMan can download a remote masterbanlist with banned IP addresses from a webserver via http. The URL of the masterbanlist must be specified here as a string, according to the given format. Set the value to the empty string '""' to disable the masterbanlist. See the section about IP Banning for more details.

 

 

* MOTD = <string> (default is '""')

 

Here you can specify a message of the day that will be displayed in regular intervals. Please use '*' to indicate line breaks (do not use '**', '***'... though). Set the value to the empty string '""' to disable the message of the day. If it is disabled, only the time remaining before mission restart/rotating will be displayed (if enabled via MOTD_interval).

 

 

* MOTD_interval = <positive integer or '0'> (minutes, default is '0')

 

This variable determines the time interval (in minutes) after which the message of the day/remaining mission time will be displayed. Set to '0' to disable both messages.

 

 

* server_rules = <string> (default is '""')

 

Here you can specify the server rules that will be displayed when a player sends the '/rules' command. Please use '*' to indicate line breaks (do not use '**', '***'... though). Set the value to the empty string '""' to disable the server rules message.

 

 

* timer_interval = <positive integer> (frames, default is '10')

 

Interval of frames after which ServMan checks if scheduled events (like the MOTD, closing polls etc.) should be triggered. Lower values may (or may not) decrease server performance, higher values may lead to less precise event triggering. However, since all events are not really time critical, this should not be much of a problem.

 

 

* log_chat = <boolean> (default is 'false')

 

If set to 'true' this option enables a chatlog-<timestamp>.log file that logs all regular chat on your server, and also 'private messages' that players sent to you via the '/report:msg' command (see below). Automatic server messages and server commands will not be logged (the latter appear in the net-server-<timestamp>.log file though). You can find the chatlog of a session in the ./LockOn Flaming Cliffs 2/Temp/ folder. Set to 'false' to disable the chatlog.

 

 

* reinit_by_admin = <boolean> (default is 'false')

 

If set to 'true', subadmins can reload the server configuration using the '/reinit' command. The server host can always use this command, and the configuration file will also be reloaded automatically on each mission start. Set to 'false' to disable configuration reloading by subadmins.

 

 

-------------------------------------------------------------------

-- 7. LANGUAGE SUPPORT

-------------------------------------------------------------------

 

ServMan supports multiple languages for server messages. English and German are provided by the stock version, English ("en") is the default language. In order to switch to German, change the 'language' option in the serverconfig.lua file to "de".

 

If you want to create your own custom translation of all server messages, you have to follow these steps:

 

1. Backup the ./LockOn Flaming Cliffs 2/Scripts/net/translations.lua file

2. Open the original file with Notepad++

3. Copy the whole translations.de table, i.e. the following section:

 

translations.de =

{

["%s : %q (ID=%d) wrote: %q\n"] = "%s : %q (ID=%d) schrieb: %q\n",

...

["Wait %d seconds before starting another vote!"] = "Warte %d Sekunden, bevor Du eine weitere Abstimmung startest!",

}

 

4. Paste the table directly in front of the last 'return translations' line in the file

5. Change the name of the pasted table from 'translations.de' to 'translations.xy', where 'xy' is an abbreviation for your language. The file should now look like this:

 

local translations = {}

 

-- German localization

translations.de =

{

...

}

 

translations.xy =

{

...

}

 

return translations

 

6. In the new 'translations.xy' table, overwrite all German translation strings with your own translation. For example, replace

 

translations.xy =

{

...

["Server started"] = "Server gestartet",

...

}

 

with

 

translations.xy =

{

...

["Server started"] = "Your translation of 'Server started' goes here",

...

}

 

Important: DO NOT edit the English strings, otherwise ServMan will not be able to find your translated message. Make sure that you do not delete the enclosing quotations marks ("...") and the commas trailing each message!

7. Some strings contain placeholders for values that will be filled in by ServMan (like player names, IPs etc.). Placeholders start with the percent '%' character. You can usually infer the meaning of the placeholder from the English phrase and the meaning of the character that follows the '%':

 

'%s' and '%q' are strings ('%q' is an escaped string, i.e. Lua replaces certain characters by others)

'%d' is an integer number

'%f' is a floating point number (like 1.234)

 

It is importants that your translation contains all of the placeholders that are present in the English message, and that it does not alter the order in which they appear, otherwise you will get errors.

8. Some strings contain the '\n' string. This represents a new line. Just put it in the same place in your translation

9. Save the file. If you have used special characters in your translation (like Cyrillic for example) make sure that you save it in the UTF-8 without BOM format (check the Format->UTF-8 without BOM option in Notepad++)

10. Change the 'language' option in the serverconfig.lua file to 'xy' to enable your translation.

11. If you experience weird behaviour after enabling your translation (or the translation does not work at all), check the 'net-server-<timestamp>.log' and 'Error.log' files in the ./Temp/ folder for possible errors. You will usually get a line number indicating where the error occured.

 

 

-------------------------------------------------------------------

-- 8. SUBADMINS

-------------------------------------------------------------------

 

The second section of the serverconfig.lua file consists of a table called 'subadmins', which allows you to appoint other players that you trust as subadmins. A subadmin can use all of the functions listed in the section 'Server/Subadmin Commands' below, like kicking and banning players or loading missions. Subadmins can manage a server when the server host himself is absent. Since subadmins have far-reaching rights, be careful who you appoint!

 

You can specify subadmins by their name and a corresponding password, which a player needs to know in order to log in as subadmin (using the '/login:<password>' function) after connecting to your server. An entry in the 'subadmins' table has the following format: '["name"] = "password",'. In the squared brackets you specify the name of a subadmin as a string, enclosed in double quotes. The subadmin has to set this name as his name/callsign in Black Shark's multiplayer options menu, otherwise he/she will not be able to log in. After the equal sign '=' you specify the password of this subadmin, also as a string enclosed in double quotes. Example: '["BartS"] = "Ay!Caramba12",'. Again, note that all table entries for subadmins have to be separated by commas (only the comma after the last entry may be missing), and that you cannot use the following characters for both subadmin names and passwords: '\', '%' and '"'. If your subadmin names or passwords contain non-English letters (for example Kyrillic), you have to convert the file to the UTF-8 without byte order mark format before saving. To do that make your changes in Notepad++, then select 'Format' -> 'Convert to UTF-8 without BOM' from the menu, and after that save the file.

 

 

-------------------------------------------------------------------

-- 9. IP AND NAME BANNING

-------------------------------------------------------------------

 

+++++ BANNING SINGLE IPs +++++

 

ServMan gives you two options for ingame IP banning: automatic banning after x kicks (as specified by the 'autoban_after_kicks' variable), and manual banning using the '/ban:<id>' command. In both cases the IP address of the banned player will be saved in the ./LockOn Flaming Cliffs 2/Scripts/net/banlist.txt file. Of course you can also add an IP to that file manually, for example after reviewing the logfiles. Each IP has to be written into its own line, and it is recommended to add a newline after the last IP. For example the content of the banlist.txt file could look like this (note the newline):

 

67.123.43.21

243.8.12.255

87.0.111.12 <-- add newline here

 

Please do not delete the banlist.txt file even if it is empty, the scripts need the file in its place to work correctly!

 

Also note that Black Shark's API does not have a native banning function, so instead the kicking functions has been used to implement IP bans. This means that upon connecting to a server, ServMan checks if the player's IP is banned and kicks him/her again if the IP is banned. That is the reason why you will still get a message saying that a banned player connected to the server, immediately followed by a message that he/she disconnected again.

 

 

+++++ BANNING IP RANGES +++++

 

Besides the banlist.txt file there are two additional options for IP banning. First you can ban whole IP ranges in the third section of the serverconfig.lua file. The third section contains a table called 'banned_IP_ranges'. Each entry of this table contains a range of banned IP addresses, all you need to do is to specify the first ('from') and last ('to') address of the range you want to ban. A table entry is an embedded table and has the following format: '{ from = "<first IP>", to = "<last IP>" },'. Again, note the comma and that IPs are strings enclosed in double quotes. For example the entry '{ from = "123.45.0.0", to = "123.45.255.255" },' would ban all IPs from and including 123.45.0.0 to and including 123.45.255.255. Banning IP ranges is the most powerful banning tool that ServMan provides, so use it with care, as banning IP ranges may also exclude other players, whose IP is within a banned range, from playing on your server.

 

 

+++++ MASTERBANLIST +++++

 

Finally ServMan also allows somebody to host a masterbanlist on a webserver, and that your server can download via http. To do that you have to specify the URL of the masterbanlist file in the 'masterbanlist_URL' variable, as explained above. The URL string must comply with the following format: '"[http://][<user>[:<password>]@]<host>[:<port>][/<path>]"'. Default is the empty string '""', which disables the masterbanlist. As you can see, the webserver hosting the masterbanlist may even restrict read access to the masterbanlist to selected people (using .htaccess). Example: if you want to download a masterbanlist from the address 'www.abc-xyz.net', path '/def/banlist.txt', the webserver allows write access only to selected clients, the webadmin has set your username to 'BartS' and your password to 'AyCaramba', then you can download the banlist if you change the 'masterbanlist_URL' parameter in the serverconfig.lua file to this line:

 

masterbanlist_URL = "http://BartS:AyCaramba@www.abc-xyz.net/def/banlist.txt",

 

And if read access to the masterbanlist is not restricted, then you can simply use this line:

 

masterbanlist_URL = "http://www.abc-xyz.net/def/banlist.txt",

 

Using a masterbanlist is another powerful tool to deal with unwanted players, so again use it carefully, not only should you trust the banlist's host, he/she should also have a clear and reasonable policy about when to add players to the banlist (and when to remove them again).

 

The masterbanlist should be a text file that has the same structure like the local banlist.txt file, each IP address has to be written into its own line (i.e. separated by newlines).

 

Both the local banlist.txt and the remote masterbanlist files will also be reloaded each time a mission starts, or by using the '/reinit' command, so you can update them during runtime, without the need to restart the server.

 

 

+++++ NAME BANNING +++++

 

ServMan does not support automatic name banning. It is useless anyway because players can simply change their name and reconnect, and it would also cause problems with impersonation. However, the mod supports manual name banning, so as an admin you can specify names that you do not want players to use on your server. To do that you have to edit the 'banned_names' table in the serverconfig.lua file. For example, if you want to ban the name 'abcdefg' you need to add the line '["abcdefg"] = true' to the table, like this:

 

local banned_names =

{

["unknown"] = true,

["abcdefg"] = true

}

 

Make sure that you add the necessary commas to separate entries. Players that want to join your server with a banned name will not be able to connect, and players who change their name to a banned name will be kicked. However, this kick will not be added to the number of times the player has already been kicked. Empty strings and strings that only contain whitespaces (like spaces, tabs, line feeds etc.) are banned by default.

 

Note that contrary to vanilla BS ServMan allows multiple players to share the same name. The reason is that somebody might impersonate one of your subadmins, which would prevent the real subadmin from joining the server. You can always distinguish players by their IDs and IPs

 

 

-------------------------------------------------------------------

-- 10. RUNNING THE MOD

-------------------------------------------------------------------

 

After installing and setting up ServMan the way you like, all you need to do is to run Black Shark in multiplayer mode and start a server session. The available server commands, which you can enter into chat to control the server, will be explained in sections 10 and 11 below. Please consider the following general comments about how to run the mod, which are a summary of a few important things that have already been mentioned above:

 

a) If you edited the serverconfig.lua or banlist.txt files, you either have to start a new mission or use the '/reinit' command (see below) to apply the new settings (or wait for automatic mission restarting/rotation, if they had been enabled previously). The configuration can be changed at runtime, there is no need to restart the server.

 

B) If you changed the number of missions in the ./LockOn Flaming Cliffs 2/Missions/Multiplayer/ folder, you must either use '/reinit' or restart the current mission to update the missionlist, as all other commands for loading new missions (/load, /votemiz, /mizpoll) may not work correctly before the list has been updated.

 

c) Make sure that the ./LockOn Flaming Cliffs 2/Missions/Multiplayer/ folder contains at least one mission before starting the server, otherwise the scripts may not run correctly. The mod looks for files with a '.miz' extension, so if you want to exclude certain missions from the maplist, simply rename the extension.

 

d) Black Shark creates a lot of temporary .tmp files in the ./LockOn Flaming Cliffs 2/Temp/ folder, which will only be deleted when you stop the server. Hence the size of the /Temp/ folder grows pretty fast, and this may be the cause for stability problems. So if your server crashes after some time, and there does not seem to be problem with the mod (see support section 14 below), then you should stop the server in regular intervals (say once per day), exit Black Shark, clean the /Temp/ folder (backup logfiles if needed), maybe restart the computer and then start the Black Shark server again.

 

e) If you want to run the mod on a dedicated server in a server farm, make sure that the reinit_by_admin variable is enabled before starting the server. Currently it is not possible to change the configuration via ingame commands, but if the variable is enabled you can upload a new serverconfig.lua file via FTP, log in as subadmin, and use the /reinit command to reload the updated config at runtime, without the need to restart the server.

 

f) If you run a dedicated server that you do not use yourself for flying, you can increase the server performance by letting the server switch to the F10 theatre view automatically on mission start. Currently the mod does not contain this option, as it requires to edit the Export.lua and Config.lua scripts in the ./LockOn Flaming Cliffs 2/Config/Export/ folder, and some people/squadrons use these files for stats tracking or other tools like Tacview. Therefore I did not want to alter the files just for one feature, so you have to edit them manually. Here is how to do it:

 

1. Make sure that the F10 map is enabled for all your multiplayer missions. If necessary use the mission editor to change the F10 map options.

2. Browse to the ./LockOn Flaming Cliffs 2/Config/Export/ folder and backup the Config.lua and Export.lua files.

3. Use Notepad++ to open the Config.lua file and change the value of the 'EnableExportScript' variable from false to true. Save the file. This enables Black Sharks data export functionality.

4. Use Notepad++ to open the Export.lua file and add the following line:

LoSetCommand(15)

directly below the 'function LuaExportStart()' line. Save the file.

 

Now once the server starts a new mission and is resumed for the first time, it will switch to the F10 map view. Since the map is 2D only, drawing it requires much less resources than rendering the 3D world.

 

g) Since DCS:Black Shark and FC2 supports file checking on clients computers, in order to prevent cheating by players who alter their local files to gain certain advantages (like weapons the Ka-50 / Jets cannot carry etc.). Check the game's updated readme for more details.

 

 

-------------------------------------------------------------------

-- 11. LOGFILES AND SERVER MESSAGES

-------------------------------------------------------------------

 

The most important tool for monitoring events on your server is the ./LockOn Flaming Cliffs 2/Temp/net-server-<timestamp>.log logfile. You can read it with a standard text editor, note though that the Windows Editor does not display all symbols correctly (for example names and chat in Russian), so it is recommended to open all logfiles with Notepad++ and select UTF-8 without BOM from the format menu. ServMan extends the list of events that are being written to this logfile, for example teamkills and AI friendly fire incidents will now be logged as well as ServMan commands that players send to your server, automatic kicks and bans, subadmin activity, voting results, take-offs, landings, regular kills, crashes etc. The file also logs names, IDs and IP addresses of all players connecting to your server, so if you find that a player violated your server rules, you can look up his IP and add him to your banlist right away. The logfile's name now has a timestamp showing the date and time when you started the server, so you do not have to worry anymore about backing up the old file before starting a new server session. Furthermore, new entries will now be written (flushed) directly to the file instead of being stored in a buffer, so you can review the file at server runtime.

 

Another useful monitoring tool is the ./LockOn Flaming Cliffs 2/Temp/chatlog-<timestamp>.log chatlog file, that can be enabled via the 'log_chat' option in the serverconfig.lua file (see above). All regular chat except automatic server messages and server commands sent by players are being logged in this file. Server commands can be found in the net-server.log file instead. Besides the name and message the ID of a player (which is uniqe for all players that are present on the server simultaneously) is saved as well. This way you can distinguish between players using the same name and detect impersonators, because you can use the ID to look up the corresponding IP address of that player in the net-server.log file. Players can also send you "private messages" via the '/report:msg' command (see below). These messages will also be written to the chatlog with a preceding 'REPORT' tag.

 

ServMan now also sends additional server messages to players. Apart from messages like the message of the day or those that belong to a server command, ServMan also notifies all players if a player teamkilled another player or ownside AI units. So even if automatic kicking is disabled, all players will be notified of the offense and can start a votekick.

 

As noted above, when you edit the serverconfig.lua file and start a new server session, you should review the corresponding net-server.log file, as it logs errors that occured while initialising the server configuration, and gives you an indication of what went wrong and where to look for the error (for example if you deleted a comma in the serverconfig.lua file, or http error codes when the download of the masterbanlist was not successful). If the file says "INIT OK" then the configuration has been loaded correctly, an error occurred if there is an "INIT WARNING" message. Note that when starting the server the configuration will be loaded twice (once on server start and once on mission start), this is normal.

 

 

-------------------------------------------------------------------

-- 12. SERVER COMMANDS FOR SERVER HOSTS/SUBADMINS

-------------------------------------------------------------------

 

ServMan's user interface is chat based, so both you as server host and other players connected to your server can control the server via chat commands. All server commands start with a slash '/'. Some commands require an additional parameter that has to be added directly after the command and a colon ':'.

 

There are two types of commands: those that are restricted to you as server host and all subadmins that you appointed and who are logged in to your server, these will be covered in this section. The server host has subadmin rights by default and does not need to log in. The remaining commands can be used by all players (although some have to be enabled in the serverconfig.lua file, as explained above), these will be covered in the next section.

 

Server commands restricted to the server host and subadmins are the following:

 

* /login:<password> (string, example: '/login:Ay!Caramba12')

 

This command has to be used by subadmins if they want to log in at your server and get subadmin rights. Subadmins connect to the server as regular players. The subadmin will only be logged in if the password matches the name of the subadmin, as configured in the 'subadmins' table in the serverconfig.lua file. Note that in principle two players with the same name can be logged in simultaneously using the same subadmin account, ServMan does not forbid that. After three failed login attempts a player will be kicked automatically, with all consequences of a regular kick (i.e. penalty time and increase of the kick counter). If the login is successful, the player can use all other subadmin functions of this section. Note that all server commands sent by players will not be visible to other players (except the server host). The reason is to protect passwords in case a subadmin login command contains a typo. All you have to remember when logging in is to add the leading slash, if you forget that the server cannot recognize your login attempt as a command and will show it to all players as normal chat, compromising the secrecy of your password. So for example, if you enter 'login:abc' your password will be visible, but if you enter '/logn:abc' it is secure.

 

 

* /logout

 

Subadmins who are logged in can log out using the '/logout' command, after that they only have regular player rights until they log in again. Subadmins will be logged out automatically when leaving the server, however it is recommended to log out manually before leaving.

 

 

* /load:<missionID> (positive integer, example: '/load:2')

 

The '/load:' command can be used to stop the current mission and immediately load the mission with the specified missionID. You can check which ID corresponds to a mission by sending the '/missions' command, which displays a list of available missions. This command overrides any active missionvote/-poll.

 

 

* /kick:<playerID> (positive integer, example: '/kick:5')

 

The '/kick:' command kicks the player with the specified playerID. You can check which ID corresponds to a player by sending the '/players' command , which displays a list of all players who are connected to the server. Note that if you are the server host and you want to kick a player, you can either use this command or the 'kick' button in the player pool, however only when you use this '/kick:' command the player has to face the regular consequences of a kick, i.e. the player has to wait for the penalty time to expire before he/she can reconnect, and his kick counter will increase, too (possibly enforcing an automatic ban for too many kicks). If you use the 'kick' button, this will have no other consequences for the player apart from being kicked. Also note that logged in subadmins cannot be kicked by using this command, only via the 'kick' button. This command overrides any active votekick against that player.

 

 

* /ban:<playerID> (positive integer, example: '/ban:2')

 

The '/ban:' command kicks the player with the specified playerID and also bans his IP address. The IP will be written to the banlist.txt file. Logged in subadmins cannot be banned.

 

 

* /pause

 

The '/pause' command pauses the current mission. Subadmins and also regular players can use the '/resume' command to unpause the mission again. The reason why regular players may resume a mission is because after starting a new mission the server pauses the mission automatically, so even if there is no subadmin present players still need to be able to unpause the mission.

 

 

* /restart

 

Restarts the current mission.

 

 

* /lock

 

Locks the server if it is currently unlocked, i.e. no new players can connect to the server. Like penalty time and bans, this function has also been implemented using the native kicking function, and players that are being kicked because the server is locked do not face any other consequences, i.e. their kick counter will not be increased. Note that once all players left the server, the server will be unlocked automatically. However if you as host are alone on the server you can lock it, too, for example for testing reasons. So do not forget to unlock it!

 

 

* /unlock

 

Unlocks the server if it is currently locked.

 

 

* /stopvotes

 

This command can be used to stop all active votes/polls and discard their results.

 

 

* /reinit

 

The '/reinit' command has mainly been added for convenience reasons. It reloads the serverconfig.lua, banlist.txt and masterbanlist files and also the list of missions available in the ./LockOn Flaming Cliffs 2/Missions/Multiplayer/ folder, so if you changed one of these files or the available missions, you can use this command to reinitialize the server configuration during runtime, without the need to restart the server. The command sends a server message that tells you if the configuration has been reloaded correctly or not. Note that the configuration will also be reloaded automatically each time a new mission starts, so if you are running a dedicated server that you cannot access via chat, you can still change its configuration files during runtime (for example via FTP upload), as long as automatic mission rotation/restarting was enabled when you started the server. You can also allow subadmins to use this command, to do that set the 'reinit_by_admin' variable in the serverconfig.lua file to 'true'. However, ServMan currently does not allow subadmins to change the configuration using the chat based interface, but if you run a dedicated server you could allow a subadmin FTP write access to the ./LockOn Flaming Cliffs 2/Scripts/net/ folder. That way the subadmin will also be able to change the server configuration, using this command. Also note that for performance reasons the value of the 'timer_interval' variable cannot be updated with this command, if you change its value you have to start a new mission to apply the new value.

 

 

-------------------------------------------------------------------

-- 13. SERVER COMMANDS FOR REGULAR PLAYERS

-------------------------------------------------------------------

 

The server commands in this section can be used by all players, unless a command has been disabled in the serverconfig.lua file.

 

+++++ VOTING COMMANDS +++++

 

ServMan supports three types of votes: votekicks to kick a specific player, missionvotes to load a specific mission, and missionpolls that let players decide which mission (from the list of available missions) to load next. Missionvotes and -polls are mutually exclusive, so only either of them can be active at a time. There can also be only one votekick and/or one missionvote active at the same time. The time after which a vote/poll will be closed and evaluated can be set via the 'vote_timeout' variable in the serverconfig.lua file. Subadmins can use the '/stopvotes' command to stop all active votes and discard their results, and a subadmin loading a new mission/kicking or banning a player will also override a missionvote or poll/a votekick against that player.

 

* /votekick:<playerID> (positive integer, example: '/votekick:3')

* /kvote:yes

* /kvote:no

 

A player can use the '/votekick:' command to initiate a votekick against the player with the specified playerID. You can check which ID corresponds to a player by sending the '/players' command, which displays a list of all players who are connected to the server. Subadmins cannot be kicked by vote. After the votekick has been initiated, players can use the commands '/kvote:yes' to vote for or '/kvote:no' to vote against kicking the player. The vote starter automatically votes "yes". Only actual votes count, if you do not vote this counts as abstention. The votekick is successful only when the majority of players voted 'yes' (and enough people voted, if 'min_votes_in_percent' is enabled), but if the vote is a tie then the player can stay (in dubio pro reo). However note that if the player to be kicked leaves the server during the missionvote, this will be interpreted as a confession of guilt and count as a kick, so the player has to face the penalty time and his kick counter will be increased, too. The reason for this is that players should not be able to avert the possible consequences of a votekick by leaving the server. So if a votekick against you has been initiated, stay on the server and wait for the result, this is the only chance to avoid being kicked. Votekicks can be disabled in the serverconfig.lua file.

 

 

* /votemiz:<missionID> (positive integer, example: '/votemiz:5')

* /mvote:yes

* /mvote:no

 

A player can use the '/votemiz:' command to initiate a missionvote for the mission with the specified missionID. You can check which ID corresponds to a mission by sending the '/missions' command, which displays a list of available missions. Players can use '/mvote:yes' to vote for or '/mvote:no' to vote against loading the specified mission. The vote starter automatically votes "yes". Only actual votes count, if you do not vote this counts as abstention. The missionvote is successful and the new mission will be loaded immediately only when the majority of players voted 'yes' (and enough people voted, if 'min_votes_in_percent' is enabled), but if the vote is a tie then the current mission will be continued. This command can also be used to restart the current mission. Missionvotes can be disabled in the serverconfig.lua file.

 

 

* /mizpoll

* /pvote:<missionID> (positive integer or '0', example: '/pvote:6')

 

A player can use the '/mizpoll' command to initiate a missionpoll that lets all players decide which mission to load next. The command displays the list of avaliable missions and the corresponding missionIDs, so players can pick their choice. Players can vote for their favorite mission by using the '/pvote:<missionID>' command, where <missionID> is the ID of the mission they would like to play next. Players can also vote '/pvote:0' if they want to continue the current mission. The mission with the most votes will be loaded immediately (given that enough people voted, if 'min_votes_in_percent' is enabled), if there is more than one winning mission then one of these will be picked randomly. However if there is a tie between one or more missions and the players who would like to continue the mission (or nobody voted), the current mission will be continued. Missionpolls can be disabled in the serverconfig.lua file.

 

 

+++++ MISCELLANEOUS COMMANDS +++++

 

* /info

 

This command shows a list of ServMan functionalities that are enabled on this server.

 

 

* /help

 

This command shows a list of all player commands that are enabled on this server. It may be a good idea to include this command in the message of the day, so new players know can check which commands are available.

 

 

* /rules

 

This command shows the list of server rules, if any rules have been specified in the serverconfig.lua file

 

 

* /players

 

This command shows the list of all players connected to the server and their corresponding player ID, which is needed for (vote-)kicks. The numbers of human and AI teamkills are shown as well.

 

 

* /missions

 

This command shows the list of all missions that are available on this server (i.e. that are located in the server's ./LockOn Flaming Cliffs 2/Missions/Multiplayer/ folder) and their corresponding mission ID, which is needed for loading a mission or for missionvotes.

 

 

* /resume

 

This command lets players resume the current mission if it is paused, for example when they enter an empty server or when a new mission has been loaded.

 

 

* /timeleft

 

This command displays the remaining time until the current mission will be restarted automatically or the next mission will be loaded (if enabled). The remaining time will also be displayed in regular intervals if the 'MOTD_interval' variable is enabled in the serverconfig.lua file.

 

 

* /report:<msg> (string, example: '/report:player abc is constantly ramming other players')

 

If the server uses a chatlog, this commands works like a private message to the server admin. The message 'msg' will be written to the chatlog with a 'REPORT' tag. Players can use this command to report misbehaviour of other players, or to make suggestions. The message will not be visible to other players.

 

-------------------------------------------------------------------

-- 14. SUPPORT AND BUG REPORTS

-------------------------------------------------------------------

 

I have created a thread at the official Eagle Dynamics forum where you can get support for the mod, report bugs/issues, provide constructive criticism and fearure requests (which might be implemented in a future revision):

 

http://forums.eagle.ru/showthread.php?p=866091

 

Note: If you think that you have found a problem/bug that could possibly be exploited by players, please do not post this issue publicly in the above thread, instead send a private message to Acedy, Panzertard or =RvE=Yoda.

 

If ServMan does not work as expected (for example server messages do not show up or it does not respond to commands), you should first check the net-server.log file if there is anything wrong with the configuration. If that is not the case, for example if there is neither an "INIT OK" nor a "INIT WARNING" line or the net-server.log file has not even been created, then you have likely found a ServMan bug. In that case please open the ./LockOn Flaming Cliffs 2/Temp/network-<timestamp>.log file. If one of the first six lines shows an error instead of the "loading <filename> OK" message, then there is indeed a problem. Please also open the ./LockOn Flaming Cliffs 2/Temp/Error.log file and check if you can find a Lua related error, for example:

 

'Lua::Config::call error server.on_chat:./Scripts/net/server.lua:330: attempt to index global 'test' (a nil value)'

 

In any case, please post a bug report in the thread mentioned above, and attach the Error.log (with capital 'E'), network.log, net-server.log, serverconfig.lua and chatlog.log files of that session, so that we can inspect the error.

 

 

-------------------------------------------------------------------

-- 15. KNOWN ISSUES

-------------------------------------------------------------------

Version 2.1.4 alpha for FC2

- Multiple Friendly Fire incidents may be registered for players due to some issues in FC2 itself.

 

Version 2.1.0 alpha for FC2

- Multiple Friendly Fire incidents may be registered for players due to some issues in FC2 itself.

- A few of the server-side events may not get written to the chatlogs.

- Negative score kicks may not work as intended. The kick may never happen.

- EN to GE Translation is completly untested.

- ServMan installed on your computer when you fly as a client may give "UNKNOWN PLAYER" instead of the name of a player.

 

Version 2.0 for DCS:BS

During beta testing the following issues were found. As far as I know they are not caused by the mod itself, but they may (or may not) appear more frequently with the mod installed. The problems have been reported to Eagle Dynamics:

 

- Players get disconnected during mission loading

- Logfiles/server messages show the wrong weapons for player kills

- The server crashes after some time, usually within 24 hours.

- Black Shark's networking API sometimes reports AI units as human players (or vice versa). As a result the mod may sometimes count incorrect numbers of team kills / team damage events

 

As said aboce, it may be a good practice to restart the server once a day and clean out the Temp folder. If you want to help improve Black Shark's multiplayer server stability, please collect crashlogs and the corresponding content of the Temp folder, and send it to Eagle Dynamics for investigation.

 

 

-------------------------------------------------------------------

-- 16. CREDITS

-------------------------------------------------------------------

 

+++++ BETA TESTING +++++

 

Many thanks to the following people/organisations for helping me beta testing the mod and/or providing valuable feedback/bug reports:

 

AlphaInfinity (KA50.com), Boberro, Case (<51>), Chip, Chipwich (SimHQ), Distiler aka 3ra_DSLam, Falcito (UFS), Fudd (159th), GGTharos, Goose81, Grimes (3Sqn), guod (SimHQ), Panzertard, PoleCat (104th), Ramstein, Shadowgreen, Ulrich (Eagle Dynamics), USSR_Rik (Eagle Dynamics), Wags (Eagle Dynamics)

 

104th Phoenix Virtual Fighter Bomber Squadron

159th Guards Aviation Regiment

KA50.com

SimHQ

 

And everybody who played on the beta servers!

 

 

+++++ EAGLE DYNAMICS +++++

 

ServMan uses DCS:Black Shark's networking API and extends the ./LockOn Flaming Cliffs 2/Scripts/net/server.lua and ./LockOn Flaming Cliffs 2/Scripts/net/events.lua files. All rights regarding these files belong to Eagle Dynamics, Russia/The Fighter Collection, UK.

 

I would especially like to thank c0ff and Dmut for their help and for adding suggested functionality to the API.

 

 

+++++ LUASOCKET +++++

 

Powered by Lua 5.1 with LuaSocket 2.0 library by the following notice:

 

Copyright © 1994-2008 Lua.org, PUC-Rio.

 

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

 

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

 

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

 

http://www.lua.org

 

 

+++++ LUAFILESYSTEM +++++

 

This project uses LuaFileSystem

 

Copyright © 2003 Kepler Project.

 

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

 

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

 

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

 

http://www.keplerproject.org/luafilesystem/

Link to comment
Share on other sites

well,

 

I don t think it can work without a graphic card at all. it probably needs at least the integrated graphic onboard a motherboard as minimal graphic. With the tweak using the F10 view, the server is creating locally only 2d views.

 

About BS itself, this program is given as compatible with that too.

 

really is my understanding BS and FC2 and in part the new A10C they all work on the same engine.

Link to comment
Share on other sites

Zeno,

 

Good news!

 

I just tested the "dedi" server and I can confirm it works very well.

I tested with Haji and he was able to login as admin and take control.

 

Let s clarify something.I would call this server as an "Hybrid".

It is not a real Dedi because it doesn t run from command line.

 

You need to launch th MP game and open a server. At that point the Modded server has all the characteristics of a Dedi with all the commands and kicking optionsyou would expect, voting, mission lists and so on.

 

So, it looks like it can run with very limited graphic manually modifying some files but I was unable to test that.

 

I noticed handling the game it uses 1 thread 100% and a second one in inconsistent manner, so probably running on a dual core with Hyperthreading it should work totally fine.

I am quite sure in low graphic environment does not need a discrete videocard.

 

I have no machine to test that.

Link to comment
Share on other sites

This version is NOT compatible with DCS:BS.

 

Whilst I am intrigued by this, for the numbers of players involved I do not see the advantage of a dedi server at this time.

 

We have a 4 core server, more than 3 of the cores are used by the arma servers. Given the above I dont think we should should turn off an arma server.

 

There are only 2 server admins that play these games. This is a game I can play without having any responsibility other than having fun, I would rather just enjoy the game.

 

Having said that I am intellectually intrigued by this and will explore it out of curiosity.

 

Sorry if this is disappointing news

Link to comment
Share on other sites

Thx Zeno and never disappointing. The fact we cannot do something, when good reasons are provided is always good.

Also, having the opportunity to brainstorming offer the chance to evaluate new projects.

 

However, consider that this server IS COMPATIBLE BS, via FC2. Meaning you have full usability of BS chopper so far they exist as availability on the loaded mission.

 

BS and FC2 have by fact the same engine. Here we are hosting a BS server thru the FC2 server.

 

I am evaluating the opportunity to create a "part-time" server on one of my boxes. It cannot be on all the time and I might not have enough bandwith, but considering i m keeping the server for us only, I think I should be able to host up to 8 ppl at the time with no issues.

 

However you are right. Considering there is not too much interest for this, it could be not that useful to keep a machine running for a very seldom traffic

Link to comment
Share on other sites

In fact that is the major issue i was thinking about.

 

The anticheat or protection may see the same ID and secondly I might have an IP issue going out to the internet with one IP and then try to connect to the same IP to play.

 

Or, I can just keep the server on for a while on the same machine Ii use to fly, so there will be the commands management available, either I am flying on it, or I leave, other ppl can join and manage missions.

This might happen mostly on weekends, when I am around.

 

In this way you all may have the training missions I made for you available and use the one you like better. Also you cann ask me to create other missions and we can manage 'em on it :)

Link to comment
Share on other sites

 Share

×
×
  • Create New...