THE killboard for eve-online.
THE character manager for eve-online.
Deep Space Supply
EVE Piracy
|
WOW |
DOAHue
|
|
DOA - MrCue
|
1. Overview 1.1 The server kit The server kit itself can be unzipped and installed into any location on the host computer. When you unzip and extract the contents of the server kit zip file, the process will create a new folder called "03_07_03_ServerKit_1.01Beta2_Build_504" that contains all the necessary files. Starfleet Command III does not need to be installed on the computer that will run the D3 server. The server kit can be installed in any location on the computer that will run the server. The server kit zip file contains all the files needed to run a Dynaverse 3 online campaign. 1.2 Campaign maps The maps used by the server are located in the Assets/Maps folder of the server kit. Maps can be edited and new maps created using the Artifex map editor available at http://area51.alienmedia.net/downloads/SFC3_MapEditor.zip Editing maps with the Artifex editor is pretty easy. Click on the hex shape on the menu bar, and that will enable two menus that allow you to set the properties of the map hexes (ie: select "Economic" and "10" then click a hex to set the economic value of that hex to 10). Choose Regions to designate empires' territory. There are 6 different types of asteroids and Nebulae, and as far as I can tell they only look different on the hex map, they have no effect on what the nebulae or asteroids look like in missions. The same can be said for the various different Black holes, Homeworlds, Core worlds and Colonies. The bases are a bit tricky. Placing anything smaller than a base station is not advised, as the game tends to do strange things when you place listening posts and defense platforms. Starbases, Battlestations, Base Stations and Shipyards seem to work fine though. Also be aware that the server has a maximum map size. If you make a map larger than 50x30 it may not load. Another good thing to know is that your server will not work if you set any hexes to a very high Strength (DV) or Economy. I suggest a maximum of 100. Impedance is a multiplier to the speed players can travel through a hex. It's usually common to apply a higher Impendence value (like 1.2) to asteroid hexes and nebula hexes, and sometimes to planets or bases (to simulate heavy traffic). The opposite could be true of some planets and open space, where travel is either well routed or there are no navigational hazards, and the Impendence could be lower than normal (like 0.75 or even 0.5). Make sure each empire has at least one base or planet, and it's usually a good idea to give them a homeworld too. 1.3 Server settings files The server kit settings are contained in 18 .gf files that are located in the Assets/ServerProfiles folder. There are other folders in the ServerProfiles folder that contain settings for test servers and other purposes, but for running an online campaign you only need to modify the .gf files located in the ServerProfiles folder. 1.4 Validated client files All the files that the server will CRC check against the players who try to connect to your server are located in the Assets/ValidatedClientFiles folder. Any files you place in this folder are looked for on the player's computer. If a player trying to connect to your server does not have one or more of the files in this folder, they will not be able to connect to your server. Also, if you have made any modifications to any of the files located in this folder, the players must have the modified files as well. By default the game checks the "Meta" mission scripts and the DefaultCore.txt file. The DefaultLoadOut.txt file is not validated because the game will use the DefaultLoadOut.txt file located on the server, not on the player's computer. 1.5 Ship Specs The specifications for all ships, stations, planets ect are contained in the DefaultCore.txt and DefaultLoadOut.txt files. For Dynaverse 3 online campaigns, the game will use the specs files that you have installed in the Assets/Specs folder of your server kit. 1.6 Mission Scripts and the Campaign1.mct file The missions that are offered in your online campaign are contained in the Assets/Scripts folder. Also located here is the Assets/Scripts/Campaigns folder, which contains the Campaign1.mct file. 1.7 CommonSettings files The Assets/CommonSettings folder contains the CommonSettings files that your server will use. These files are also looked for on the player's computer when they try to connect to your server. 1.8 Saves and backups The Saves folder contains the Autosave, Backup and ExitSave folders, as well as a copy of the starting database. Every time you start the server, it will look for the ExitSave folder, and if present, it will try to load the database located there. The database is a file named Sfc3Spd.sds. If you specify your server to save an "AutoSave" of the database, it will be located in the Saves/Backup/AutoSaves folder by default. 1.9 Log Viewer The logviewer program is located in the LogViewer folder. If you specify the server to save a text log file, it is saved in the root folder of the server kit, not in here. 2. Basic Server setup 2.1 Open ports Make sure the following ports are open so the server can properly communicate via the internet: tcp 26100 - 26110 udp 2302 - 2400 tcp 27100 - 27110 udp 27100 - 27110 tcp 8085 and 6073 udp 8085 and 6073 2.2 Edit server name and description Open the Campaign1.mct file in Notepad or any text editor. Where it says: Name="Dynaverse3" Description="REMEMBER! Change the Name and the Description BEFORE starting a server with this kit. Thanks!" Change "Dynaverse3" to whatever you want to name your server, examples include "The Neutral Zone" and "Dominion Wars". Make sure that whatever you type here you keep the parenthesis ("") around your server name. You must also change the Description to something other than the default text. Type whatever you want in here, to describe your server to the public. Examples include notes about your campaign or the URL to your website. 2.3 Edit Chat name Go to the Assets/ServerProfiles/Chat.gf file and look for the value: NickName="SFC3N". You need to change this value to something more personalized, since your server's chat nickname cannot be the same as another server's. 2.4 Start the server Execute the program ServerPlatform.exe located in the root of the server kit. Select option 2 _CentralSwitchPlusAllServers to start the server. 2.5 Stopping the server If you want to stop the server later, hit any key to bring up the menu and select option 1 Shutdown. If you stop the server without performing this step, the server will not save the current database, and the next time you choose to run the server it will load the last Exit Save, which could be hours days or even weeks old depending on how long your server has been up. The server only does an "exit save" when you shut it down properly with option 1. 3. Server Logs 3.1 The Log Viewer There is a simple filter system. If you click View > Set Filter an edit box will come up. You can enter any RegEx (Regular Expression) in there and it will filter the output. It's still rather crude and untested; if you enter an expression that is not a RegEx then it will crash. To clear the filter just enter an empty string or ".*" It will only display 1000 elements. A log file is always created, it is given the date the log file was created and it is placed in the same directory LogViewer.exe is run from. The Logviewer is useful for viewing information as it happens. 3.2 The text Log file You can also make the server create a text log file in addition to or in place of using the LogViewer. To do this, open the Assets/ServerProfiles/Debug.gf file in Notepad. Look for the section called [Log]. It looks like this: [Log] LogToLogViewer = 1 // (1) LogViewerName = "LogViewer" // "LogViewer" LogToConsole = 0 // (0) LogToDebugOutput = 0 // (0) LogToEventViewer = 0 // (0) EventViewer = "" // Machine Name ("meta1") LogToFile = 0 // (0) LogFileName = "logfile.log" Here you can specify for the server to create a text log file by changing the setting "LogToFile= 0" to "LogToFile= 1". you can also specify the filename of the log file. The log file is created in the root of the server kit when you start the server. 4. The Campaign1.mct file 4.1 Campaign1.mct settings This file is used to determine the basic settings for your campaign, such as which missions will be offered, which map the server will use, what the difficulty level of your server will be, which races are playable and what the password to your server is, if you want one. EarlyMapName="MediumMultiMap.mvm" MidMapName="MediumMultiMap.mvm" LateMapName="MediumMultiMap.mvm" These settings are to specify a different map for each era. Era's are not really enabled in SFC3. I suggest you leave the setting Era=0 alone, so whatever map name you specify in EarlyMapName will be used. It is assumed that a map with the matching name has been created and stored in the Assets/Maps folder. DifficultyLevel=2 This setting determines the overall difficulty level of your server. Difficulty level effects a lot of things in the game such as the price of new ships, the cost of repairs and how hard the missions are. TriggerMission="" TriggerPrestige=0 These settings are only used for the single player Dynaverse. They determine when the storyline campaign is started. [Missions] 1="Meta_Scan.scr" 2="Meta_DistressCall.scr" This list determines which missions your server will offer players. All these missions must be located in the Assets/Scripts folder. Don't forget to put the file extension at the end of the filename! [Races] 0=0 1=1 2=2 3=3 This setting determines which races will be playable in your campaign. 0=Federation, 1=Klingon, 2=Romulan and 3=Borg. To make only 3 races playable, simply delete one of these lines. 5. The CommonSettings files 5.1 General info The cost of the items is modified by the server difficulty setting in Campaign1.mct and Economy.gf. Campaign1.mct sets which difficulty setting you're using, and Economy.gf sets what the cost multiplier for each difficulty level is. The title and description of the items cannot be changed by the server. The "Health" value of each item is the amount of damage it can take. 5.2 Chat.gf This file basically controls the colors of some of the in-game text. It is not advised to change any of these settings. 5.3 RaceNames.gf This file lists, in a specific order, the names of the various races in the game. The Long names may be edited but the short names must all stay as they are or the game will not work properly. 5.4 OfficerNames.gf This file contains all the names of crew officers that the server will use to name the officers that you see in the shipyards and planets in the game. Names are listed by race. 5.5 ShipNames.gf This file lists all the possible names of ships during the campaign, by race. Players can edit the name of their own ship in the Supply Docks screen in the game. 5.6 Rank.gf This file controls what the names of the various ranks are, and how much prestige it takes to earn that rank. The rank names can be edited to whatever you want. Make sure that the prestige needed to attain the first rank is always 0. 5.7 ItemRules.gf Here you can edit weather technology from one race can be used on another race's ships. On the player's computer, this file also determines what ship the Skirmish mode loads up by default. 5.8 HullItems.gf This file sets the cost, mass, "health" and race for all the Armor, Tractor Beams and Transporters in the game. The "Rating" value of the Transporter is how many boarding parties it can transport in one activation. 5.9 WeaponItems.gf Here you can set the cost, mass, "health" and race of every weapon in the game, as well as setting how much power it takes to charge and how much damage it does. Energy and Damage can be decimal numbers, but all the other settings MUST be whole numbers. 5.10 BridgeItems.gf This is where you set the properties of the computers for all race's ships, plus the Klingon and Romulan Cloaking devices. Changing the RangeIndex of the computers changes their scanning range, and has no effect on the range of the ship's weapons. The LockBonus value is not used. 5.11 PowerItems.gf This is where you set the properties of the warp cores, thrusters and impulse drives for all races. Warp core power is used for Shields, weapons, tractor beams and even scanners. By far the most power is used by weapons and shields. Most of the time you can barely tell that the tractor beam and scanners are using an power at all, and they only use it while switched on. Note that the Thrusters have their Health value commented out. That is because they cannot be targeted and never take damage. 5.12 ShieldItems.gf This is where the properties of the shields of each race may be edited. the "efficiency" value is a factor of how much power it takes to generate the listed value of shield strength. the formula used to determine exactly how much warp power is used to power the shield is: strength divided by efficiency rounded off to the nearest hundredth. 6. The Specs files 6.1 DefaultCore.txt This file contains all the information regarding the ships statistics and specifications. Things such as how much space for engines, weapons and shields each ship has, as well as how large the ship's "sensor profile" is (ie: how hard it is to hit) and information regarding the ships weapons and firing arcs, how many marines, mines and shuttles the ship carries, and weather it has enough bridge items spaces to mount a cloaking device. Details on editing this file are beyond the scope of this document, but suffice to say that it is a tab-delimited text file that is easily opened and edited using a spreadsheet program like MS Excell. 6.2 DefaultLoadOut.txt While the DefaultCore.txt file contains information like how much of something a ship can carry, and how many weapons the ship has, this file determines exactly what type of items the ship will come equipped with, both when flown by the AI and when the player buys the ship from the shipyard. Which items you mount on the ship has a lot to do with how expensive the ship is in the shipyards, as the cost value for each item is listed in the CommonSetings files, and the costs for each piece of equipment is cumulative. The total cost for everything is modified by the difficulty setting on your server, and the overall cost of each class of ship is modified by the Economy.gf file. Like the DefaultCore.txt file, this file is a tab-delimited text file. While the details of editing this file are beyond the scope of this document, you should know that any changes you make in this file that result in a ship being equipped with more mass than the DefaultCore.txt file says it can will result in the ship being omitted from the shipyards and unavailable in the game. The name of each ship, and the reason it was omitted are listed in a file called "InvalidShips.txt" which is located in the root of the server kit and is re-written each time the server kit is run. 7. AI.gf 7.1 Controlling creation of AI ships 7.1.1 How many AI's are created? First, to control the number of AI ships each empire creates, you can either set this to be a set number of ships, or you can have the number of ships each empire creates be based on the empire's economy. To use a set number, just set the MaxAIsPerEmpire value to the number of AI ships you want each empire to have. If you want the number of AI's per empire to be based on the empire's economy, then set the MaxAIsPerEmpire value to -1, and then look for the TargetPopulationToEconomicRatio value. The total economy of each empire is multiplied by this number to get the number of AI's that the empire will create. The default setting of 0.09 for instance, means that each empire will produce a number of AI's equal to 9% of it's total economic points. The number of economic points an empire has can change over the course of a campaign, as it captures enemy hexes or loses hexes to an enemy empire. The economy values of the hexes are set on the campaign map, which is discussed in section 1.2. 7.1.2 How fast are the AI's created? You can change how quickly the AI ships are created by changing the MaxAIsToCreatePerTurn value. This number is how many AI's the server will try to create for each empire until that empire reaches it's maximum. 7.1.3 What type of ship will each AI get? The [CreateShipClassOdds] sections set what the chances are of an AI being given each different class of ship. The number you assign to each class is factored against the total of all the numbers to get the chance of that class being given. For instance, if you add up all the numbers in the [CreateShipClassOdds/0] section, it adds up to 82. Therefore, the actual chance of a Battleship being built is less than 1%, and the chance of a Frigate being built is about 16%. [CreateShipClassOdds/0] Freighter = 25 Frigate = 20 Destroyer = 15 LightCruiser = 10 HeavyCruiser = 5 HeavyBattlecruiser = 2 Dreadnought = 2 Battleship = 1 The 0, 1 and 2 at the end of the [CreateShipClassOdds/0] stands for what difficulty level this set of figures is used in. 7.2 Controlling officer availability In the [Officers] section is a value called MaxInReviewByClient. This value is how many officers you will see in the officer screen when you go to a planet or base and click on Officers. The OfficerPopulationRatio number determines the overall number of officers that each race has in it's "officer pool". This number is multiplied against the number of human players on the server to get the total number of officers in each race's "officer pool". While one race may have 300 total officers in it's pool, only the number in MaxInReviewByClient will be visible in the officer screen. You can also set how many officers are available at each type of installation. The [Officers/MinAtBase] values set the minimum number of officers available for purchase at each place, but remember that while there may be 16 officers at your Starbase, you can only see the number set in MaxInReviewByClient at one time. This is so if you take some officers away from the Starbase, there are others assigned to it to fill the screen back up again, but there is not an unlimited number of officers! The [Officers/AvgAtBase] value is how many of the officers that will be given to each base of each type first, so that hopefully all the bases have at least some officers available. If there are still more officers left to assign after all bases and planets have been given this allotment, then the server will go around to all the bases again and fill them up until they reach the [Officers/MaxAtBase] value. 8. Assets.gf This file contains some basic game information that should not be edited, such as the path to the various files the server needs. 9. Character.gf 9.1 Disrepute payback The value set in DisreputePaybackRate is a percentage of the prestige earned that goes towards paying off the player's disrepute. Since it's a decimal number, 0.1 is 10% and 1.0 is 100%. The default setting of 5.0 means that the player's earned prestige is counted 500% towards their disrepute. 9.2 Maximum players on the server The PlayersMax value is the total number of players that will be allowed to have an account on your server. PlayersLoggedOnMax is the total number of human players that can be logged on to your server at the same time. This number has a lot of effect on how well your server will run, as too many players can easily slow down the server to a crawl. The default setting of 128 players is very optimistic. You can get rid of accounts of players who have stopped playing on your server with the PlayerMaximumInactivity setting. When a player's account goes beyond this number of days without logging on to the server, their account is deleted. 9.3 Moving defeated players away from the battle By default the server will move a player to an adjacent hex if you are defeated in a tactical battle. The VictoryLevelToShiftAHexAfterBattle value determines when this occurs. Here is a list of the possible values: // Levels: // 3= Draw, Defeat, Devastating Defeat will move them // 2= Defeat, Devastating Defeat will move them // 1= Devastating Defeat will move them // 0= Do not move the character at all 9.4 Starting Prestige The three [Create] values are for setting a different starting prestige for each difficulty level. Note that a newly created account will have more than this many prestige points, because there is also a modifier in the Ship.gf file called PrestigeModiferOnShipGrant that changes the starting prestige, since a newly created player on the server is automatically given the starting ship. 9.5 AI names The [Create/Federation] names listed will be used by the server as ship captain names. The server will choose a name at random from this list to give to each AI ship captain. There is no limit to how many names you can list here. The AI crew officer names are not drawn from this list, instead they are drawn from the OfficerNames.gf file in the Assets/CommonSettings folder. 9.6 Planet names All of the planets that you placed on your map are given a name from the [CreatePlanet] list. There is no way to specify which planet will be given which name as the server picks a name at random for each planet. You may even see more than one planet with the same name. The longer the list of names, the less likely there will be two planets with the same name. 9.7 Duplicate player names You can choose weather to allow more than one human player to have the same name on your server with the AllowDuplicateLogOn setting. 1= yes, 0=no. 9.8 Starting Ships and officers The ship that each player is given when they first create their account is listed in the [StartingShips] sections. The names used here are from the "SubName" column in the DefaultLoadOut.txt file. Don't forget any apostrophes in the Klingon names! [StartingShips/0] is the list of starting ships used for difficulty setting 0, and so on. Within each list, 0=Fed, 1=Klingon, 2=Romulan and 3=Borg. The ship names must be in that racial order. It is important to note here that within the DefaultLoadOut.txt file, like any other component, each ship is given officers as well. If the starting ship you select is given "blank" officers (ie: OFFICER:TACTICAL: ) then the player will be given a set of random officers with randomly generated skill levels. If the starting ship you select comes equipped with skilled officers, which look like this: OFFICER:HELM:PAULI:14:24:14:Legendary:6. Legendary:6. Legendary:6. ect ect... Then the player will also receive those officers with his ship. This can be bad, since the player can immediately sell the officers for cheaper ones and gain a lot of prestige points, and it also detracts from the fun of watching your officers gain skill points as you progress through the campaign. It is also quite useful for testing various ship loadouts with legendary officers to see how they will handle when the players in your campaign have finally earned legendary officers. 10. Chat.gf Go to the Assets/ServerProfiles/Chat.gf file and look for the value: NickName="SFC3N". You need to change this value to something more personalized, since your server's chat nickname cannot be the same as another server's. The rest of the data in this file should not be tampered with. 11. Database.gf 11.1 Campaign database backup files The first rule of running any server is "1. Always keep a backup!" The path specified in "Path" is the path, relative to the ServerPaltform.exe file, of the active database. This should probably not be changed. BackupPath is where the server will save a backup of the database. The AutoSaveFrequency is the number of turns between "autosaves", which are additional backup files that are saved more frequently than Backups. The default value of 5 here, combined with the default value of 120000 in the MilliSecondsPerTurn setting (120000 milliseconds = 2 minutes) in the Time.gf file makes the server do an AutoSave every ten minutes. If you increase this frequency you will notice a drop in server performance, but you will always have a more recent backup. If you decrease this frequency you may see an improvement in server performance, but if something should go wrong (your power goes out or something similar that stops the server without doing a proper shutdown) your last save could be hours or even days old. AutoSaveDateTimeStampedRate refers to yet another backup of the database (you can NEVER have too many backups!) that actually is created in a new folder that is named with the date and time the backup was created. The default setting of 6 means that every 6th AutoSave is stored in a separate folder that has a name like this: "2003-10-19_1915" This date is summarized as: "YYYY-MM-DD_HHMM" where the time of "1915" is in the 24 hour military time (7:15pm). Since the default value is 6, and the default AutoSaveFrequency is is every 10 minutes, then the default AutoSaveDateTimeStampedRate is once every hour (6 x 5 ten minute turns = 60 minutes). Setting the value to 0 means that no "timestamped" save will be created. 11.2 Using SQL By default the UseSQL value is 0, which means the server will use a flatfile database instead of SQL. While much greater functionality can be had when using SQL, it is extremely unstable when used on servers with more than 5 players. I suggest this setting be left at 0. Since I do not recommend using a SQL database the SQL settings in Database.gf should be ignored. 12. Debug.gf The function of most of the settings here are unknown and should not be tampered with. The [Log] section however can be extremely useful and I strongly suggest that you keep a log. All this information is covered in section 3. 13. Economy.gf 13.1 The Shipyards 13.1.1 What determines the cost of a ship? The cost you pay for a ship in the shipyards is effected by a number of things. First, the DefaultCore.txt file lists a base cost for the bare hull of the ship. Then, the DefaultLoadOut.txt file lists all the equipment that comes with the ship, and the prices of all those items (from the various CommonSettings files) are added to the base hull cost. Then add to that the [Cost/Difficulty] modifier from the Economy.gf file. The default setting for difficulty level 2 is 1.1, which means all prices of everything in the game are multiplied by 1.1. Multiply your subtotal so far by this number, but you're not done yet! The [Cost/Ship/ClassType] modifiers are also applied. The default setting for a Heavy Cruiser class ship is 0.7, which means the running subtotal cost of a Heavy Cruiser is finally multiplied by 0.7 to get the final cost of the ship in the shipyards. However, the MinimumBidFactor value is a minimum bid you can make for a ship, which is regardless of the actual totaled value of the ships. 13.1.2 How many ships will be built by each empire? The total number of ships to build is based on the total number of players that are logged on the server at the time. The PlayerModifierStep value is used to increase or decrease the "budget" available per a given number of players logged on at the time the shipyards build. The number you put in PlayerModifierStep is used to figure a ratio which is applied to the total economy of the empire to get a final number which is the "production budget" for that empire. For example, if PlayerModifierStep is set to 20, and there are 10 players online, the resulting ratio is 50%, so the production budget of all the empires is 50% of their total economy. If there are only 5 players online, the budget is only 25% of the empires total econ. 13.1.3 Building "Big Ships" First, the server checks the BuildBigShipFrequency number. If the current turn number is divisible by this number, the server will try to build a "Big Ship" (anything larger than a DD) before the normal build process. The default value for this number is 3. 13.1.4 The normal shipbuilding process [Cost/Ship/Build] is the relative cost of building a ship of each hull type: [Cost/Ship/Build] Shuttle = 0.01 Freighter = 0.03 Frigate = 0.20 Destroyer = 0.15 LightCruiser = 0.15 HeavyCruiser = 0.10 HeavyBattlecruiser = 0.10 Dreadnought = 0.10 Battleship = 0.10 ListeningPost = 0.10 Shipyard = 0.10 BaseStation = 0.10 BattleStation = 0.10 StarBase = 0.10 The less expensive a hull type is, the greater it's chance of being produced when it is chosen by the server. The server chooses which ships to build by a random die roll of a 33 sided dice, and adds a modifier number from 1-5 based on the relative size of the empire's economy. The total is capped at 33. The rolls for the different hull classes are: 1-8 FF 9-14 DD 15-20 CL 21-25 CA 26-29 BCH 30-32 DN 33 BB When a hull class is determined, the server subtracts the [Cost/Ship/Build] value for that hull class from the empire's budget. If the empire does not have that much left in it's budget, the server rolls again. It continues to roll until the NormalBuildTriesBeforeGiveUp value has been reached. The default value for that setting is 10. 13.1.5 Economic thresholds The BuildBaseEconomicThreshold and BuildBigShipEconomicThreshold are set as a relative economic strength of 0-5. An empire must be above this level for it to be able to build these items. 13.1.6 How many ships will be visible in the shipyards? The MaximumInReviewByEmpire value is how many ships and bases will be available for purchase at any one time in the shipyards, even if the empire built more ships than that. The MaximumAge value is how long each ship stays in the shipyards before it is scrapped (deleted). 13.1.7 How long it takes to get the ship you bid on The TurnsUntilClose value sets how many turns the player must wait to get the ship he has the highest bid on. The default number is 3, which means a player must wait 6 minutes to get the ship he has bid on, unless another player outbids him first. 13.2 The cost of it all The [Cost/Difficulty] setting is a modifier applied to all prices of everything in the game. You can set this cost modifier to a different number for each difficulty level. 13.3 Rebates? The CanBenefitFromDowngradingShip value is for giving the player back the difference in prestige points if they purchase a ship that costs less than their current ship. It also applies when a player removes some equipment from their ship to get back the prestige points for that item. 13.4 Supplies The [Cost/Ship/SupplyDock] numbers are the cost in prestige points for each item a player may purchase in the supply dock, including repairs. The player cannot "trade in" their ship, nor can they purchase missiles, fighters or spare parts. This value is modified by the [Cost/Difficulty] setting. 14. Gamespy.gf As with some other server profile files, these values should not be altered. 15. Goal.gf 15.1 Goal server info in the logs With the ViewGoalActivity and ReportInterval variables you can set how the goal server information is reported in the server logs. 15.2 AI activities 15.2.1 Returning to Base When any AI sustains SystemRepairPercentage or HullRepairPercentage amount of damage, they will cease whatever they are doing and return to the nearest base for repairs before returning to their previous activity. 15.2.2 General AI Activities The various [GeneralActionOdds] variables are all % chances that an AI will take the stated action when presented with the stated situation. Care should be taken with these settings as some of them can have detrimental effects on a campaign if not properly managed. 15.2.3 Specific AI assignments You can exercise a great deal of control over how each empire will act during your campaign by modifying the [ScenarioOdds] settings. Like the [CreateShipClassOdds] from AI.gf, the number you assign to each assignment is factored against the total of all the numbers to get the chance of that assignment being given. [ScenarioOdds/Federation] "NoScenario" = 600 "InternalPatrol" = 300 "BorderPatrolDefense" = 200 "BorderPatrolOffense" = 100 "Offense" = 070 "OffensePlanet" = 010 "OffenseStarbase" = 030 "DefendPlanet" = 200 "DefendStarbase" = 150 "DefendBorder" = 200 "ExpandTerritory" = 100 "DeliverStarbase" = 002 "DeliverBattleStation" = 001 "DeliverBaseStation" = 002 "DeliverWeaponsPlatform" = 003 "DeliverListeningPost" = 005 "HuntEnemy" = 020 You can control how each empire will act by setting the odds for them to do things like defending their borders or seeking out enemies to attack. Also, the odds of an AI trying to deliver a base are included here. The base must be available in that empire's shipyards for the AI to perform that assignment. Note also that if your empires only have a few bases or planets, and the chances of the "DefendPlanet" or "DefendStarbase" assignments are high, you will see a lot of AI's just sitting on the handful of bases and planets instead of going out and getting into a fight with your players (which is generally what the players want!). On the other hand, making a few of the AI's hang around the bases and planets ensures that the players will be able to find some when they go looking for a wingman. 16. HexValues.gf These variables are not used. 17. Language.gf The only purpose of the file is to set what language the server uses. Under [Settings] English = 1 If this is set to English = 1 then the server uses English. Otherwise it uses German. These are the only languages supported. 18. MetaMap.gf 18.1 Map movement The [Movement] settings determine how far and how long it takes to move on the map. Radius can be set to a number higher than 1, allowing players to move more than 1 hex on the map with a single move. This may be useful for larger maps. MovementDelayInMilliseconds is how long it takes the movement que bar to complete when a player moves on the map. This length of time is multiplied by the Impedance value for the arrival hex and the departure hex. The CarryingStarbaseDelay setting is how long it takes to move while carrying a base of any type. Generally you want this to be longer than the normal movement delay. The WalkRate value is a "break time" between movements on the map. 18.2 Placing bases on the map The UnlimitedBasesInHex setting allows players to drop more than one base in a a single hex. This can be useful for increasing the Defense Value of surrounding hexes. The MinNearbySameRaceHexes is a way you can control where players can place a base on the map. The number is how many adjacent hexes must be controlled by the player's empire for a base to be placed in a hex. If this is set to 0 then bases may be placed in a single hex that is surrounded by enemy hexes. If this is set to 6, then bases can only be placed in hexes where the player's race controls all adjacent hexes. In campaigns that use the Area of Operations (or AO) rules developed by Chris "SghnDubh" Condon, this setting can make a great deal of difference. 18.3 Politics 18.3.1 Variable Political tension Your campaign can feature either variable political tensions, or static tension. To make the political tensions change during your campaign, change the default settings in the [PoliticalTensionInc] section of the MetaMap.gf file. These settings will change the political tension values of the empires whenever a battle is fought. Hand in hand with them are the [PoliticalTensionDec] values, which reduce tensions. A warning about using these settings: it is very difficult to predict exactly what every AI in the game will do. When you use these settings you are ceding control of the universe's politics to the AI! The default setting for all these values is 0, which disables variable political tensions. 18.3.2 Starting political tensions The [PoliticalTension/StartingTensions] values set how each empire feels about the others politically. The higher the number, the more hated that empire is by the heading empire. These numbers can be altered to produce some strange effects, as well as setting who is at war with whom. For example: The Federation hates Pirates.... [PoliticalTension/StartingTensions/Federation] Federation=0 Klingon=800 Romulan=800 Borg=1000 Species8472=1000 Cardassian=800 Ferengi=200 Rakellian=1000 Pirate=1000 Neutral=800 ...but Pirates are rather fond of the Federation! [PoliticalTension/StartingTensions/Pirate] Federation=200 Klingon=200 Romulan=200 Borg=1000 Species8472=1000 Cardassian=200 Ferengi=200 Rakellian=1000 Pirate=0 Neutral=800 You should make sure that if you want two or more races to be "at war" with each other, that they both have a value of 1000 listed for each other here. Also note that I have witnessed some strange results when using non-standard settings. With the Federation set to 300 tension with the Borg and vise versa, sometimes they would ask to join my fleet, and sometimes they would attack me! No wonder the text said "We distrust the Borg Collective."! 18.3.3 Miscellaneous [Politics] settings In the [Politics] portion of the MetaMap.gf file, the NumCycleUpTensions value is not used. The AllyRatio and NeutralRatio values are used to determine what the variance in politics setting means. If the political tension between two race is less than the AllyRatio value, then they will be considered friendly. If the tension between them is equal to or less than the NeutralRatio value, they will be considered allied (non-hostile). When selecting a purely AI race, DistanceWeight is the weight given to the distance from the hex in question to the center of power of the AI race in question. TensionWeight is the weight given to the tension between a selected purely AI race and the players race. The LowNewsRangeUpTo and HighNewsRangeNotBelow settings determine the bottom and top of the list of political news that will be reported in the news, respectively. The [TensionBumps] settings are the exact amount of tension change for each mission outcome possible. The values given here are multiplied x10 to get the relative tension change, which is applied at the end of the mission. 18.4 Map hex Defense Values The [VictoryPointModifier] settings determine how many DV points the DV of a hex will decrease by when an enemy completes a successful mission in that hex. The Easy, Med and Hard values correspond to the 3 difficulty levels. PureAI means when a battle occurs in which no human players participate (yeah, they do that!). In the [Battle] section you find the settings for controlling how low the DV of a hex has to be before it will turn neutral. MinVictoryPointsForPlayerVictory means if the hex DV has reached this level of it's starting value due to human players completing missions in that hex, it will turn neutral. MinVictoryPointsForAIVictory means the same thing for PureAI battles. HexHealthResetRatio is what the DV of the hex will be once it "flips" to the capturing player's color. This number is a decimal percent of the original starting value. 18.5 Economic reports Every "Interval" turns the report is produced in the news. 18.6 Campaign victory conditions Under [WinConditions] you will see three values. NumCumulativeOpponentsToWin is the number of competitor races to tally the economic status of to see if a race has 'won'. If a race has more economic points than this many other races, then it wins the campaign. NumCumulativeOpponentsToWarn works the same way only if a race has more economy than this many races a warning that the race is about to win the campaign is produced in the news. The CumulativeCoefficient value is a multiplier that's applied to the NumCumulativeOpponentsToWin and the NumCumulativeOpponentsToWarn before tabulation. Make this number really high to make your campaign go on and on, or leave it at the default value for a shorter campaign. Note that the more races you have in your campaign, the more effect the CumulativeCoefficient has on the win conditions. 18.7 AI birthplace The AI's can be "born" either directly on bases or in one of the surrounding hexes. The AIBornOnlyOnBases setting determines which. If you choose to allow AI's to be created in the surrounding hexes, AIBornOnBaseOddsDelta is used to determine if they are born on the base or not. The higher you set this value, the more likely the AI will be born on the base instead of next to it. 19. MissionGoals.gf This file contains information regarding the single player storyline campaign and has no effect on a Dynaverse 3 online campaign. 20. MissionMatching.gf 20.1 Checking for a match Basically to see if a mission will be offered, the server adds up a bunch of modifiers, and if the resulting number is high enough, a mission is offered to the player. The modifiers cover everything from what race the player's current location hex is compared to the player's race, weather the player has moved this turn or not, what type of planet or base is in the player's current hex and a lot more. These modifiers are: [ScreenForMatch] MatchDetail = 1 BonusForNearbyForeignCharacters =100 EnemyHexBonus =100 NeutralHexBonus =50 ChanceMove =30 ChanceLogon =0 ChanceTurnBreak =10 ChanceMissionComplete =50 ChanceMissionForfeit =0 ChanceGoalExpired =0 ChanceGoalInvalid =0 ChanceGoalComplete =0 The MatchDetail value is a measure of how much about the mission matching process is reported in the server logs. 0=none, 1=minimal and 2=maximum. In general, you want this set to 1 unless you are testing mission scripts. Under [MissionProfiles] the ShowMission value means weather the real script names of the mission scripts will be show to the players or not. In general this should be set to 0 unless you are testing mission scripts and need to see which one is actually being offered. This is useful for testing purposes if you have written multiple scripts with the same mission briefing and you need to see which one is being offered. The HasMustPlayMissions and MustPlayOnlyOnEnemyHex values are for determining if players will have mandatory missions "pushed" on them, and weather these missions will be offered only in enemy space or in any space. RandMssnInBaseOrPlanetHex is for restricting weather missions other than plant and base assaults will be offered in planet and base hexes. This setting can be used to prevent players from accidentally going into a mission when they are trying instead to attack the planet or base and is highly recommended. The [TerrainScoring] section contains some more modifiers to the mission matching score based on the terrain of the hex the player is currently in. [TerrainScoring] PlanetTypeScoreForMatching =5000 BaseTypeScoreForMatching =2500 TerrainTypeScoreForMatching =100 The [PoliticsScoring] section contains more mission matching modifiers based on politics settings. [PoliticsScoring] BonusForExactPoliticalMatch =1000 LookingForOwnHexInOwn =1000 LookingForOwnHexInAlly =500 LookingForOwnHexInNeutral =0 LookingForOwnHexInEnemy =-100 LookingForEnemyHexInOwn =-100 LookingForEnemyHexInAlly =-100 LookingForEnemyHexInNeutral =0 LookingForEnemyHexInEnemy =1000 LookingForAllyHexInOwn =0 LookingForAllyHexInAlly =1000 LookingForAllyHexInNeutral =0 LookingForAllyHexInEnemy =-100 The "LookingForAllyHexInEnemy" is referring to the player's current hex. The [FleetScoring] section contains modifiers to the mission matching based on the ships in the player's fleet and any other fleets and ships present in the hex. [FleetScoring] GoodBPVScore =1000 TooWeakBPVScore =300 TooStrongBPV =0 GoodShipCountScore =0 TooFewShipCountScore =0 TooManyShipCountScore =0 PlaceBaseMissionScore =50000 BaseScoreBonus =10000 Finally, all the modifier sections listed above are given a relative importance level in the [ScoringWeights] section. [ScoringWeights] WeightMissionsLastPlayed =0.2 WeightPoliticsScore =10.0 WeightTerrainScore =1.0 WeightFleetScore =0.01 The default setting of 0.01 for WeightFleetScore means that what ships are involved is not as important to the mission matching process as the WeightPoliticsScore settings which is 10.0. You can set the politics of the server in the MetaMap.gf file. Other scores that are applied to the mission matching process are [RelationshipScoring], [RecentlyPlayedScoring] and [MapScoring]. 20.2 Enabling PVP If you want to enable PVP (human Player Versus Player) on your server, leave the AllowHumanToHumanMatching setting at 1. This setting can be useful if you want to have a campaign that is purely a race between the empires instead of a direct confrontation. 20.3 Game speed Under the [Game] section is the GameSpeed setting. This setting determines what the tactical mission speed setting will be on all human players on your server when they enter a mission. Because some players do not have "optimal" game systems, it is highly recommended that you change this setting from the default setting of 9 to 8 instead. 20.4 Adding custom mission variants In the [HailMissions/HailMissionTitles] section you will find a list of "Hail mission" categories. "Hail missions" are those that can involve multiple human players. You can add custom variants of these missions to the server by listing them within the various categories here. The list is ordered numerically, starting with 0 for the stock Taldren script. [HailMissions/HailMissionTitles] 0 ="Meta_Hail" [HailMissions/HailConvoyMissionTitles] 0 ="Meta_Hail_Convoy" [HailMissions/HailBaseStationMissionTitles] 0 ="Meta_Hail_Base" [HailMissions/HailBattleStationMissionTitles] 0 ="Meta_Hail_Base" [HailMissions/HailStarBaseMissionTitles] 0 ="Meta_Hail_Base" [HailMissions/HailPlanetMissionTitles] 0 ="Meta_Hail_Planet" [HailMissions/HailHomePlanetMissionTitles] 0 ="Meta_Hail_Homeworld" [HailMissions/HailShipYardMissionTitles] 0 ="Meta_Hail_ShipYard" So if you wanted to add your own custom PVP mission, you could list it in the appropriate section and it would be offered at random from the list of PVP missions. Here is what that would look like: [HailMissions/HailMissionTitles] 0 ="Meta_Hail" 1 ="Meta_MyCustomHail" By listing the missions multiple times, you can have some control of how often each variant is offered. Look at this example: [HailMissions/HailMissionTitles] 0 ="Meta_Hail" 1 ="Meta_MyCustomHail" 2 ="Meta_Hail" 3 ="Meta_Hail" With this list, the mission script Meta_MyCustomHail would be offered 25% of the time, since it is listed in 1 of the 4 possible entries. 20.5 Modifier Based Difficulty Setting The section [Diff] is a way of setting how hard the missions will be by setting a modifier to the BPV of the enemy (AI enemy, not non-human). Look at the table: //modifier based difficulty setting [Diff] CaptainDiff =0.85 CommodoreDiff =1.0 AdmiralDiff =1.15 According to these default settings, the BPV of the AI enemies a player will encounter in all missions on your server is multiplied by 1.15 if you use the "Admiral" difficulty setting (which is 2 in most of the .gf files). This setting has been the subject of popular myth but it performs no other function besides this. 20.6 Space backdrops The space backround images listed in the [Backgrounds] section are stored on the player's computer in the SFC3/Assets/Models/Space folder. You can change these images if you want, but make sure the replacement image is at least 256x256 in size and in the .BMP format. The larger the images, the more detailed they appear in the game. 20.7 Preventing Cheating There are a number of settings in the [ForfeitModifiers] section that are there for you to use in preventing the common forms of cheating on the D3. These are mostly based on what happens when a player fails to join a battle. ForfeitPercentageLossOfPrestige is how much prestige a player will lose if they forfeit a battle instead of accepting it. This number is a percentage of their current prestige that is deducted from their current total. The ForfeitLoseShipIfBelowPrestigeThreshold determines weather a player can lose their ship when they forfeit a mission. If the ForfeitPrestigeThreshold number is more prestige than the player currently has, the server will take the players ship instead of his prestige. ForfeitLoseShipIfBelowPrestigeThreshold must be set to 1 for this to be used. ForfeitIfFailedToJoin is used to determine if a player is automatically forfeited if they fail to join a battle that they have already "accepted". What this really means is that they have intentionally disconnected from the server to avoid battle. If the DisreputeIfFailedToJoin setting is set to 1, the player will be charged DisreputeLostOnFailedToJoin amount of disrepute for failure to join a battle. MoveToFriendlyBaseIfFailedToJoin will move the player to the nearest friendly base or planet if they fail to join a battle. LoseStarbaseIfFailedToJoin will cause the player to lose any starbase they are carrying when they fail to join a battle. In my experience this occurs weather this setting is used or not, and rightfully so. DeathIfFailedToJoin is a severe punishment, it treats any player that fails to join a battle as if they were destroyed in the battle instead. Read this warning that appears in the MissionMatching.gf file: WARNING: The "IfFailedToJoin" options are for CHEATERS. Be careful that you don't use all at once, as they are cumulative - NOT exclusive. This is very true, as many players with poor internet connections and other problems like having different versions of DirectX may experience difficulty connecting to missions even if they are not cheating. Most server admins do not use these settings, as they can be overly harsh on the average gamer, and not harsh enough on the real cheaters. 20.8 How long to wait for mission launch In the [EngagementTimers] settings you will find the WaitForBattleStart setting. This one is fairly important in that it determines how long the server will count down before launching a mission once a player has clicked "Attack". This only applies to "Hail missions". The number is in milliseconds, so the default setting of 45000 is really 45 seconds. 20.9 Forfeit prestige bonus In the [EngagementMisc] section is the DefenderFledAttackerBonus setting. This is the amount of prestige to give to a player when any enemy (human or AI) forfeits rather than fight them. 20.10 Battles between AI's The AI's on your server will fight each other, even without a human player present. The server only simulates these battles, they are not actually carried out like human missions. You can set the server to decide all the details of how the victor is chosen, how much prestige the winner gets, and what happens to both AI characters during the battle, as well as setting how long it takes to simulate the outcome. With the AIBattlesSimulateTime setting set to 1, you can use the AIBattlesTimeInMinutes setting to set the server to wait seconds or minutes before determining the outcome of a pure AI battle, with the exact number of seconds or minutes set by the AIBattlesTimeRange setting. 20.11 Fleet limits The LeaderCannotBeLowerClassThanMember setting limits the members of a fleet to being in ships of equal or smaller size than the fleet leader. This is to prevent players in an FF from having 2 BB's as wingmen. The [Fleet/Maximum] settings are used to limit how many of each class type of ship can be in the same fleet. While the default setting prevents the AI from forming fleets of BB's that a player would be hard pressed to defeat, it does nothing to prevent human players from all flying in the same hex to the same location and engaging in the same battle. 21. News.gf This file only contains data regarding the new item text colors and other settings that are best left unchanged. 22. Score.gf 22.1 What happens when you die? The ChargeForReplacementShip value is to prevent players from cheating. With this setting at 0, a player can take his brand new starting ship and strip all the equipment and weapons off of it, then go out and ram into an asteroid or something similar to blow his ship up, then he gets given a new starting ship by the server. If the player is charged the prestige cost of his new ship, then he is paying more than he can make by stripping his ship to the bone and self destructing it. The ChargeToDisreputeRate rating is a percentage of the cost of the replacement starting ship a player is given when he dies that is charged to the player as disrepute instead of being charged to the player as prestige points. Obviously this setting only works if ChargeForReplacementShip=1. The default setting here is 80, which means 80% of the cost of the replacement ship is charged to the character as disrepute instead of taking his prestige away. Here is an example of how this works: 1. Player gets blown up in a tough mission. 2. Player is automatically given a replacement ship by the server. 3. The server determines how much prestige the replacement ship is worth. (ie: 10,000) 4. Server takes 2000 prestige from the player, and gives the player 8,000 disrepute. With the default setting of 80 (80%), the server takes 80% of the cost of the new ship and instead of taking that much prestige away from the player, it gives them that much disrepute. It's a way of lessening the blow of losing your ship, while still making it impossible to cheat by gutting the replacements and self destructing. The amount of prestige it takes to pay off disrepute is set in the DisreputePaybackRate in Character.gf. Disrepute simply prevents a player from buying a new ship in the shipyards until it is paid off. 22.2 Starting Glicko ratings for humans The players' "rating" is a numeric method of tracking that player's skill in battle. It's a complex system of mathematical formulas that basically goes up as you win missions, and down as you lose. The amount it increases or decreases depends on how decisively you win or lose, and how much stronger or weaker your opponent was.The StartingHumanRating value is the rating every human player starts the campaign with. For the most accurate statistics, a starting rating of 1500 is advised. 22.3 Rating shift The table [VictoryLevels] shows the shift in a players rating for the given outcomes during a mission: [VictoryLevels] AstoundingVictory = 1.0 Victory = 0.8 Draw = 0.5 Defeat = 0.2 DevastatingDefeat = 0.0 This number is multiplied against the players rating to generate the amount of shift in their rating due to the listed outcome, with MaximumGain from the [Rating] section being the most a player's rating can increase in a single battle. The WinThreshold is the amount of difference between the high scorers of both sides for the mission to be declared a win for the highest scorer's team. 22.4 Bases and hex DV When a base is placed, the DV of the hex it's placed in, and the hexes around that hex, go up. When a base is destroyed, the DV of the hex it was in and all the surrounding hexes goes back down by the same amount. The [Transition/VictoryPoints] settings allow you to change how much this shift in DV is, for each different kind of base. Primary is for the hex the base is in, and Secondary is for the 6 surrounding hexes. These settings can have a drastic effect on any campaign using the AO system. The MinimumVictoryPoints setting is the lowest the DV of a hex can go due to the destruction and removal of the base from the map, regardless of the Transition value. 22.5 Officer skill The [LevelUp] section details how often the officers advance in their non-specialized skills. Curiously, when these settings are enabled by typing a decimal number other than 0.0, all officers on the ship advance together in the first skill on the list that they aren't legendary in. This will continue until all officers are legendary in every skill. This is undesirable in most campaigns. The [SpecializedLevelUp] values are what determine the advancement of the officers in their chosen fields. The decimal numbers represent percentages, so the Trained value of 0.060 means there is only a 6% chance an officer will advance a "Trained" skill to "Skilled" after a successfully completed mission. Generally D3 players consider the default settings to be too slow, but I prefer to keep them slow, as it adds a lot of value to the better officers. 23. Ship.gf The PrestigeModiferOnShipGrant is an amount of prestige points applied to the player's account when a new ship is given to the player. The default value of -100 means that when a player is given the starting ship by the server, both when their account is first created and when they receive the starting ship after being destroyed, they also lose 100 prestige points! You might want to keep this in mind when setting the starting prestige amount in Character.gf. 24. Time.gf The server measures the passage of time in Stardates. You set the starting stardate in the BaseYear setting. The default setting is 56200 and although there are different settings for the different difficulty levels, they are not used in SFC3. The TurnsPerYear setting is how many turns will pass before the stardate flips to the next year. The default setting of 10000 means that the stardate one year from the start of the campaign will be 66200. The MilliSecondsPerTurn value is of critical importance to your campaign! Many server settings are effected by how long a turn is, and that's what this setting sets! The default setting is 120000 milliseconds, which is 2 minutes. Any change you make to this setting will have drastic effects on your campaign, so be very careful. The WaitForServersTurnRate and ServersToWaitForCount should not be altered. In case you were wondering, the movie Star Trek Nemesis occurs on stardate 56848.1.