Jump to content
Sign in to follow this  
Jaenus

Setting up a dedicated server (Questions)

Recommended Posts

Hey all.

I've read all of the wikis and forum posts, but I'm still confused on just one part!

Ok so for the rest of you interested in a dedi server (if even just for your friends), the best resource I've found is:

http://www.kellys-heroes.eu/files/tutorials/dedicated/

It provides pretty decent examples and, most importantly, some example config files.

I know ARMA2 dedi servers are still in the works, but this is one tough nut to crack, so the above website helped me out.

The ONLY thing I don't quite understand is how to specify WHICH map you want to run.

For example I want to run a Warfare 030 lite map by Benny (great map!) and the server.cfg I got off of Kelly's reads:

The following options are seen in the lobby of a multiplayer game. These

options can be useful for setting time limits and score limits in such games

as Capture the Flag and Death Matches. Other popular uses include

accelerate time, setting the mission difficulty or switching the intro on/off.

*/

param1 =

param2 =

};

class Mission_02

{

template = anothermission.Chernarus;

difficulty = "veteran";

param1 =

param2 =

};

};

Being computer smart but code stupid, am I to assume that I should replace "anothermission.Chernarus" with WarfareV2_030Lite.Chernarus?

And what does param1 and 2 mean? Is that the options like Fast Time and Night and such? If so, do I type that in exactly as it reads if I were to manually set up a new game in the multiplayer window?

And lastly do I leave class Mission_02 up if I'm going to be running just 1 map the entire time?

Sorry for the questions, but there's really no place that REALLY explains this from a basic, basic level.

Thanks for the help!

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

This is the server.cfg I'll be using, modded just slightly. Any suggestions?

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

/*

Example ArmA2 server configuration file

by [KH]Jman, 3rd July 2009. http://www.kellys-heroes.eu

*/

// Password for private servers. Uncomment this if you wish to run a private server

// password = "my password";

/*

Password to protect admin access

type: #login mypassword

in ingame client chatbox to login as admin

type: #missions

in ingame client chatbox to display the mission list

*/

passwordAdmin = "mypassword";

// The name of the server that shall be displayed in the public server list

hostname="My Server Name";

/*

Message of the day. It can be several lines, separated by comma

empty messages "" will not be displayed at all but are only for increasing the interval

*/

motd[]=

{

"Welcome to my server name",

"hello world",

};

// Time interval (in seconds) between each message of the day

motdInterval=50;

/*

25% or more players need to vote for mission to become effective

set to 1.5 to turn off missions voting

*/

voteThreshold=0.25;

/*

Maximum amount of server slots

server will always display 64 slots if maxPlayers is >64 and server is empty

*/

maxPlayers=80;

/*

Gamespy reporting url for public server list inclusion

use 127.0.0.1 for LAN server

*/

reportingIP="arma2pc.master.gamespy.com";

/*

If specified player connects/disconnects and player id are written to file.

log file is persistant and appends data on server restart.

*/

logfile="myserver.log";

/*

Specifies the mission rotation and related difficulty settings.

leave blank i.e class Missions {};

to enable player's selection from mission list & difficulty settings

(voted on if no admin logged in)

*/

class Missions

{

class Mission_01 // name for the mission, can be anything

{

template = mymission.Chernarus; // omit the .pbo suffix

/*

difficulty: recruit, regular, veteran & expert

as specified in *.Arma2profile

*/

difficulty = "regular";

/*

The following options are seen in the lobby of a multiplayer game. These

options can be useful for setting time limits and score limits in such games

as Capture the Flag and Death Matches. Other popular uses include

accelerate time, setting the mission difficulty or switching the intro on/off.

*/

param1 =

param2 =

};

class Mission_02

{

template = anothermission.Chernarus;

difficulty = "veteran";

param1 =

param2 =

};

};

// If class missions is blank start voting when 1 players connect.

voteMissionPlayers=1;

// Do not allow players with duplicate ids to connect

kickduplicate=1;

// If set to 1 players must use exactly the same -mod= startup parameter as the server.

equalModRequired=0;

// If set to 1, Voice over Net will not be available

disableVoN=0;

/*

Quality from 1 to 10

refer to:

http://community.bistudio.com/wiki/ArmA:_Multiplayer#VOIP_support

for codec info. 7 is the best.

*/

vonCodecQuality=7;

/*

Set the timestamp format used on each report line in server-side RPT file.

possible values are:

none (default), short & full

*/

timeStampFormat=full;

/*

Enables persistent battlefield

dependent on the mission specifiying persistence, otherwise has no effect.

missions must contain either instant respawn or base respawn options located in the missions description.ext file

*/

persistent=0;

/*

Enables signature verification for addons

this will prevent pbo hacks by only allowing pbos that pass servers public key checks

*/

verifySignatures=1;

// Signature timeout fix

regularcheck="{}";

// See ArmA Biki for additional signature commands

// EOF

Share this post


Link to post
Share on other sites

If you want to rotate just one mission then you would use just one entry to the class Missions i.e

class Missions 
{
class Mission01 
{
template = [b][i]mission name[/i][/b];
difficulty = "[b][i]difficulty level[/i][/b]"; 
param1 = [b][i]variable[/i][/b];
param2 = [b][i]variable[/i][/b];
}; 
};

To add a second mission to the rotation:

class Missions 
{
class Mission01 
{
template = [b][i]mission name[/i][/b]; 
difficulty = "[b][i]difficulty level[/i][/b]"; 
param1 = [b][i]variable[/i][/b];
param2 = [b][i]variable[/i][/b];
}; 
class Mission02
{
template = [b][i]mission name[/i][/b]; 
difficulty = "[b][i]difficulty level[/i][/b]"; 
param1 = [b][i]variable[/i][/b];
param2 = [b][i]variable[/i][/b];
}; 
};

Lets got through the syntax.

class Missions

Declares the class that lists the missions that will be played in cyclic order

class Mission01

Declares the first misssion in the class. The class name can be named anything you like.

template = WarfareV2_030Lite.Chernarus;

Filename of the mission (without extension pbo) - the mission must be located in directory MPMissions

difficulty = "regular";

Difficulty: recruit, regular, veteran & expert as specified in *.Arma2profile

param1 = variable;

Where variable is an value that sets a parameter of the specific mission - see description.ext inside the mission file itself. Optional. if no param is defined the server will use the mission default as set inside the mission file itself.

param2 = variable;

Sets a second mission specific parameter. Again optional.

Notes on the description.ext

If you unpbo the mission file and open the desciption.ext and if it has some params already defined you will see lines similar to this but possiblly defining other options such as weather settings or number of revives. In the following example Time is defined as a param

titleParam1 = "Time";
valuesParam1[] = {1, 2, 3, 4};
defValueParam1 = 1;
textsParam1[] = {"Morning", "Day", "Evening", "Night"};

As you can see the default value is set to Morning . Now lets say you want to start the mission at Night. the class Missions param would need to be:

param1 = 4

ArmA2 1.03 supports a maximum of two parameters. Future versions will support many more parameters (see beta releases for more info).

Notes on init.sqf

Inside the init.sqf of the mission pbo you will find the code that defines what the value 4 actually does. In my example the code would be:

Note: The default time is set in the mission editor and gets written to the mission.sqm when the mission is saved by the editor.

The value if skipTime is added to the default time i.e if the default time is 07.00 hrs, param1= 4 would set the time to

23:00 hrs and as an extra feature it would set the weather to an percentage overcast value of 50% and a 70% chance of rain.

switch (param1) do {
	case 1: {skipTime 1};
	case 2: {skipTime 7};
	case 3: {skipTime 12; 0 setOvercast 0.2; 0 setRain 0};
	case 4: {skipTime 16; 0 setOvercast 0.5; 0 setRain 0.7};
};

If you wish to get into mission editing further I suggest you take a look at our Arma 2 Scripting Reference Pages

Edited by [KH]Jman

Share this post


Link to post
Share on other sites

about the description.ext and setting up parameters.

This can be done in a a slight other way as well. I will take time as an example:

Time is here set via mission to 12:00

titleParam1 = "Time";
valuesParam1[] = {-6, 0, 6, 12};
defValueParam1 = -6;
textsParam1[] = {"Morning", "Day", "Evening", "Night"};

the in the init.sqf, you would only need to write this down.

skiptime Param1;

Obviously, as opposed to the above example in jman's post, this changes only the time of day, and has no effect on weather (fog and rain)

Share this post


Link to post
Share on other sites

switch (param1) do {
	case 1: {skipTime 1};
	case 2: {skipTime 7};
	case 3: {skipTime 12; 0 setOvercast 0.2; 0 setRain 0};
	case 4: {skipTime 16; 0 setOvercast 0.5; 0 setRain 0.7};
};

For anyone wondering the reason for the Overcast and SetRain system on the last two cases:

There is alot of glare from night missions, this mostly occurs when using night vision and looking at the giant orbs which are representing stars these days :j:

So I suggested setting the skies to a darker setting, allow for cloud cover, with or without rain, this stops alot of the glare on night missions :)

Share this post


Link to post
Share on other sites

I'd like to thank everyone who replied first and foremost.

Second, I'd like to thank Jman.

He's done so much work for this community in making setting up a dedicated server easier. Without him or his tutorials I wouldn't be this far.

Share this post


Link to post
Share on other sites

hi all

hmm i followed the guides think ive done every thing right in the case of where server.cfg ect goes but when use the launcher i just get a box top left of screen saying dedicated host created , host idenitity created but game does nt launch what do i do now sorry for being a noob:o

Do i launch the game with differant launcher and then just look for my server.

Ahh ok ive found my server but i need to patch it to 1.03i read the wiki but dont really get it can any 1 explain how i do it please.

nvm i was being thick after some searching i found the 1.03 version

Edited by muttly

Share this post


Link to post
Share on other sites

Quick question!

Here is my command line:

C:\Games\ARMA2\ArmA2Server.exe -port=2302 -name=Serious Business -config=server.cfg -cfg=Arma2.cfg -profiles=default.arma2profile.cfg

When I start it up, I get this error:

No Entry 'Arma2.cfg.3D_Preformance'

What's this mean and how do I get rid of it? Does it hurt anything?

Share this post


Link to post
Share on other sites
Quick question!

Here is my command line:

C:\Games\ARMA2\ArmA2Server.exe -port=2302 -name=Serious Business -config=server.cfg -cfg=Arma2.cfg -profiles=default.arma2profile.cfg

When I start it up, I get this error:

No Entry 'Arma2.cfg.3D_Preformance'

What's this mean and how do I get rid of it? Does it hurt anything?

Anyone know?

Share this post


Link to post
Share on other sites

its probably looking for this line in your arma2.cfg:

3D_Performance = 0.000000;

go ahead and add it into the config file, should fix your issue. and no, it shoudln't matter on a dedicated

Share this post


Link to post
Share on other sites
its probably looking for this line in your arma2.cfg:

3D_Performance = 0.000000;

go ahead and add it into the config file, should fix your issue. and no, it shoudln't matter on a dedicated

Thanks Green :D

Share this post


Link to post
Share on other sites

Can I ask some questions about the map rotation??

having some problems understanding th syntax on the {;}

not sure of the rules that apply when u lengthen the rotation beyond say your two map example

=========================

Code:

class Missions

{

class Mission01

{

template = mission name;

difficulty = "difficulty level";

param1 = variable;

param2 = variable;

};

class Mission02

{

template = mission name;

difficulty = "difficulty level";

param1 = variable;

param2 = variable;

};

};

===========================

any tidbits that you can offer on the usage of the { or } or ; and when to use

also I have the persistance set so the server carries on when no one is there but how do you get the map to rotate back to the 1st map after all maps are done in the rotation?

when I scripted .cfg's in say cod2 we would use a

map_rotate

at the end of the cfg to start the maplist back over again

If I can just glimpse say someone's cfg that has multiple maps (more tht 3) I can probably dervire the syntax from that

and if it was to include the string that allows the maps to continue and never go creating that would be great

thanks so Much@@!!!

Share this post


Link to post
Share on other sites

I was struggling with this as well, and I believe if you have it set to persistent, you don't get map rotation. Also, if everyone logs out and you log back in, it will kick you into the same previous map instead of giving the option for a new one.

Share this post


Link to post
Share on other sites

Sorry if this is a noob issue; however I am brand spanking new to server config. :butbut:

My problem is that I am attempting to set up an automatic map rotation of some aas maps.

The maps are loaded into the MPMissions folder and tested out fine on the server.

I have attempted to load the paramaters into my server.cfg file. However, no matter what I do, when I use this modified file my server disappears from the public server list. I can only assume that this is because there is something wrong with the file. The only thing different between a config that works and one that does not is these extra parameters I’m using for setting up the map rotation.

Perhaps someone here has see this before?

// GamingDeluxe ArmA 2 Server Config
// comments are written with "//" in front of them.


// GLOBAL SETTINGS
hostname="Nhorz Warz"; // The name of the server that shall be displayed in the public server list
password=""; // Password for joining, eg connecting to the server
passwordAdmin="*****"; // Password to become server admin. When you're in Arma MP and connected to the server, type '#login xyz'
reportingIP="arma2pc.master.gamespy.com"; // This is the default setting. If you change this, your server might not turn up in the public list. Leave empty for private servers
maxPlayers=30;


// WELCOME MESSAGE ("message of the day")
// It can be several lines, separated by comma
// Empty messages "" will not be displayed at all but are only for increasing the interval
motd[]={
"", "", "",
"Welcome to the Nhorz Warz ArmA 2 Server",
"****",
"****",
"****",
“****â€,
“****â€,
“****â€,

""
};
motdInterval=5; // Time interval (in seconds) between each message


[color="Red"]class Missions
{
class Mission_01
{
template = aas50_ChernogorskConflict.Chernarus;
difficulty = "veteran";   
param1 =   
param2 = 
};
class Mission_02
{
template = aas50_DevilsCastle.Chernarus; 
difficulty = "veteran";
param1 =   
param2 = 
};
};[/color]


// VOTING
voteMissionPlayers=1;  // Tells the server how many people must connect so that it displays the mission selection screen.
voteThreshold=0.33; // 33% or more players need to vote for something, for example an admin or a new map, to become effective




// JOINING RULES


kickDuplicate=1; // Each ArmA version has its own ID. If kickDuplicate is set to 1, a player will be kicked when he joins a server where another player with the same ID is playing.
verifySignatures=0; // Verifies the players files by checking them with the .bisign signatures. Works properly from 1.08 on
equalModRequired=0; // If set to 1, player has to use exactly the same -mod= startup parameter as the server.



// INGAME SETTINGS
disableVoN=1; // If set to 1, Voice over Net will not be available
vonCodecQuality=0; // Quality from 1 to 10
persistent=1; // If 1, missions still run on even after the last player disconnected.



// SCRIPTING ISSUES
onUserConnected=""; // self-explaining
onUserDisconnected="";
doubleIdDetected="";
regularCheck="";


// some ArmA specific stuff - signature verification
onUnsignedData = "kick (_this select 0)"; // unsigned data detected
onHackedData = "ban (_this select 0)"; // tampering of the signature detected
//onDifferentData=""; // data with a valid signature, but different version than the one present on server detected
//BattlEye=1; //Server to use BattlEye system

// MISSIONS CYCLE (see below)
class Missions {
};

language="English";
adapter=-1;
3D_Performance=8021.000000;
Resolution_W=160;
Resolution_H=120;
Resolution_Bpp=32;
viewDistance=10000;
terrainGrid=10.000000;
MinBandwidth = 15000000;
MaxBandwidth = 100000000;
MaxMsgSend = 1024;
MaxSizeGuaranteed = 1024;
MaxSizeNonguaranteed = 64;
MinErrorToSend = 0.0025;
MaxCustomFileSize=0;


//-----------BIS Suggestions------------

//MinBandwidth = 320000;
//* Bandwidth the server is guaranteed to have (in bps). This value helps server to estimate bandwidth available. Increasing it to too optimistic values can increase lag and CPU load, as too many messages will be sent but discarded. Default: 131072

//MaxBandwidth = 10000000000;
//*Bandwidth the server is guaranteed to never have. This value helps the server to estimate bandwidth available.

//MaxMsgSend = 256;
//* Maximum number of messages that can be sent in one simulation cycle. Increasing this value can decrease lag on high upload bandwidth servers. Default: 128

//MaxSizeGuaranteed = 1024;
//*Maximum size of guaranteed packet in bytes (without headers). Small messages are packed to larger frames. Guaranteed messages are used for non-repetitive events like shooting. Default: 512

//MaxSizeNonguaranteed = 64;
//*Maximum size of non-guaranteed packet in bytes (without headers). Non-guaranteed messages are used for repetitive updates like soldier or vehicle position. Increasing this value may improve bandwidth requirement, but it may increase lag. Default: 256

//MinErrorToSend = 0.005;
//*Minimal error to send updates across network. Using a smaller value can make units observed by binoculars or sniper rifle to move smoother. Default: 0.01

//MaxCustomFileSize = 0;
//*Users with custom face or custom sound larger than this size are kicked when trying to connect.

Share this post


Link to post
Share on other sites
remove this part..it doubles..you already wrote the same above..

Also you don't need to have basic.cfg stuff in there. Everything starting with language-adapter etc.

// MISSIONS CYCLE (see below)

class Missions {

};

Also you can have a look at this.

http://www.kellys-heroes.eu/files/tutorials/dedicated/

Oh man what a noob. I did not even see that. I will give this a try.

I have already looked at that tutorial. That is where I got the code from.

I'm just so much of a noob it takes me longer to catch up.

cheers

Share this post


Link to post
Share on other sites

Hi

I have a dedicated server up and on persistent mode, that means "playing" status is always on, the problem is that after 12 hours of server host, on domination AI WEST, it becomes night, how can i make it always daytime?

Thanks

Share this post


Link to post
Share on other sites

It is mission specific.

If the time (in your case its dynamic) is set in the parameters, You can use the parameters part to set it to fixed time rather than dynamic.

If it is not in the parameters You need to tweak the mission file itself.

Read Jman's post on the first page...

Check description.ext in the mission. If fixed time is defined, you can set it, if not, you need to change it inside the mission.

For further editing questions, post it in the mission editing section of BIF..

Share this post


Link to post
Share on other sites
It is mission specific.

If the time (in your case its dynamic) is set in the parameters, You can use the parameters part to set it to fixed time rather than dynamic.

If it is not in the parameters You need to tweak the mission file itself.

Read Jman's post on the first page...

Check description.ext in the mission. If fixed time is defined, you can set it, if not, you need to change it inside the mission.

For further editing questions, post it in the mission editing section of BIF..

Thanks.

I have something like this on description:

class TimeOfDay {

title = "Time of day:";

values[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23};

default = 14;

texts[] = {"00:00","01:00","02:00","03:00","04:00","05:00","06:00","07:00","08:00","09:00","10:00","11:00","12:00","13:00","14:00","15:00","16:00","17:00","18:00","19:00","20:00","21:00","22:00","23:00"};

};

I have erased all values except 10, have put 10 on default, and left "10:00", That means, no other hours are available, but my clock still works :confused:

Is that right?

Share this post


Link to post
Share on other sites
Sorry if this is a noob issue; however I am brand spanking new to server config. :butbut:

My problem is that I am attempting to set up an automatic map rotation of some aas maps.

The maps are loaded into the MPMissions folder and tested out fine on the server.

I have attempted to load the paramaters into my server.cfg file. However, no matter what I do, when I use this modified file my server disappears from the public server list. I can only assume that this is because there is something wrong with the file. The only thing different between a config that works and one that does not is these extra parameters I’m using for setting up the map rotation.

Perhaps someone here has see this before?

// GamingDeluxe ArmA 2 Server Config
// comments are written with "//" in front of them.


// GLOBAL SETTINGS
hostname="Nhorz Warz"; // The name of the server that shall be displayed in the public server list
password=""; // Password for joining, eg connecting to the server
passwordAdmin="*****"; // Password to become server admin. When you're in Arma MP and connected to the server, type '#login xyz'
reportingIP="arma2pc.master.gamespy.com"; // This is the default setting. If you change this, your server might not turn up in the public list. Leave empty for private servers
maxPlayers=30;


// WELCOME MESSAGE ("message of the day")
// It can be several lines, separated by comma
// Empty messages "" will not be displayed at all but are only for increasing the interval
motd[]={
"", "", "",
"Welcome to the Nhorz Warz ArmA 2 Server",
"****",
"****",
"****",
“****â€,
“****â€,
“****â€,

""
};
motdInterval=5; // Time interval (in seconds) between each message


[color=Red]class Missions
{
class Mission_01
{
template = aas50_ChernogorskConflict.Chernarus;
difficulty = "veteran";   
param1 =   
param2 = 
};
class Mission_02
{
template = aas50_DevilsCastle.Chernarus; 
difficulty = "veteran";
param1 =   
param2 = 
};
};[/color]


// VOTING
voteMissionPlayers=1;  // Tells the server how many people must connect so that it displays the mission selection screen.
voteThreshold=0.33; // 33% or more players need to vote for something, for example an admin or a new map, to become effective




// JOINING RULES


kickDuplicate=1; // Each ArmA version has its own ID. If kickDuplicate is set to 1, a player will be kicked when he joins a server where another player with the same ID is playing.
verifySignatures=0; // Verifies the players files by checking them with the .bisign signatures. Works properly from 1.08 on
equalModRequired=0; // If set to 1, player has to use exactly the same -mod= startup parameter as the server.



// INGAME SETTINGS
disableVoN=1; // If set to 1, Voice over Net will not be available
vonCodecQuality=0; // Quality from 1 to 10
persistent=1; // If 1, missions still run on even after the last player disconnected.



// SCRIPTING ISSUES
onUserConnected=""; // self-explaining
onUserDisconnected="";
doubleIdDetected="";
regularCheck="";


// some ArmA specific stuff - signature verification
onUnsignedData = "kick (_this select 0)"; // unsigned data detected
onHackedData = "ban (_this select 0)"; // tampering of the signature detected
//onDifferentData=""; // data with a valid signature, but different version than the one present on server detected
//BattlEye=1; //Server to use BattlEye system

// MISSIONS CYCLE (see below)
class Missions {
};

language="English";
adapter=-1;
3D_Performance=8021.000000;
Resolution_W=160;
Resolution_H=120;
Resolution_Bpp=32;
viewDistance=10000;
terrainGrid=10.000000;
MinBandwidth = 15000000;
MaxBandwidth = 100000000;
MaxMsgSend = 1024;
MaxSizeGuaranteed = 1024;
MaxSizeNonguaranteed = 64;
MinErrorToSend = 0.0025;
MaxCustomFileSize=0;


//-----------BIS Suggestions------------

//MinBandwidth = 320000;
//* Bandwidth the server is guaranteed to have (in bps). This value helps server to estimate bandwidth available. Increasing it to too optimistic values can increase lag and CPU load, as too many messages will be sent but discarded. Default: 131072

//MaxBandwidth = 10000000000;
//*Bandwidth the server is guaranteed to never have. This value helps the server to estimate bandwidth available.

//MaxMsgSend = 256;
//* Maximum number of messages that can be sent in one simulation cycle. Increasing this value can decrease lag on high upload bandwidth servers. Default: 128

//MaxSizeGuaranteed = 1024;
//*Maximum size of guaranteed packet in bytes (without headers). Small messages are packed to larger frames. Guaranteed messages are used for non-repetitive events like shooting. Default: 512

//MaxSizeNonguaranteed = 64;
//*Maximum size of non-guaranteed packet in bytes (without headers). Non-guaranteed messages are used for repetitive updates like soldier or vehicle position. Increasing this value may improve bandwidth requirement, but it may increase lag. Default: 256

//MinErrorToSend = 0.005;
//*Minimal error to send updates across network. Using a smaller value can make units observed by binoculars or sniper rifle to move smoother. Default: 0.01

//MaxCustomFileSize = 0;
//*Users with custom face or custom sound larger than this size are kicked when trying to connect.

You are mixing two config files here.

Don't combine the ArmA2.cfg and Server.cfg

ArmA2.cfg should contain parametres for MinErrorToSend and the others.

Server.cfg is the first part of your post. That has to do with the missions and servername

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×