Jump to content
Sign in to follow this  
qwertz

Server shown as "creating" when Players=0, hard to find in server browser

Recommended Posts

Hi,

I have the following problem:

We run a public server, ArmAcalypse PvP, with PvP/TvT gameplay only and almost exclusively AAS missions.

This normally displays as "TYPE = HOLD" in the in-game server browser.

However, with no players connected, the server browser shows empty "TYPE" and "MISSION" columns. The "STATUS" column shows "CREATING".

This makes it very hard for people to connect to the (empty) server if they do not specifically filter for the server name. Newcomers have no means knowing what kind of server (i.e. what type of gameplay etc.) they are connecting to.

Is there any way to change the server behavior so that even if "PLAYERS = 0", it shows up in the game browser as "HOLD", and displays the currently loaded mission?

I have seen that there are servers that are empty but still show all the details such as mission, type, and "STATUS = PLAYING" (see screenshot below).

The server config is set to persistent=1, and we have a defined map cycle, so that there is no map voting. The map that loads when a player connects to the empty server is always the one after the last one that has been played.

I have attached some images to illustrate the problem:

1.jpg

Other empty servers showing details:

2.jpg

Filltering for "HOLD" does not display the server:

3.jpg

Only filtering for the name finds the server:

4.jpg

arma2.swec.se shows the server as "waiting":

5.jpg

Thanks for you help,

qwertz

Share this post


Link to post
Share on other sites

seems like this is not an easy one - any tips/hints in the right direction what *could* be the reason ?

Share this post


Link to post
Share on other sites

there must be something wrong about persisten=1; setting.First of all while this settings is on and working when player connects to an empty server there is no loading new mission or selection screen comes.You join the that half,played mission.

adding, your server.cgf arma2.cfg and shortcut commandline here, would be help full who is going to help you.

Edited by snakedoctor34

Share this post


Link to post
Share on other sites
Enabling the persistence option will make missions that have either base or instant respawn keep on running after all players have disconnected. The other respawn types will not make a mission persistent. The kind of respawn a certain mission uses is set in its Description.ext.

find it here

Share this post


Link to post
Share on other sites

Exactly, those servers keep running the mission even though no players are logged in, aka "persistent" or whatever setting that is. Should be pretty easy to do, you just need to make sure the server actually does run the appropriate type of mission.

Share this post


Link to post
Share on other sites

My unit has its own Arma server, for an example to look at this is my server config:

// comments are written with "//" in front of them.

// server.cfg

maxPlayers = "6"

passwordAdmin = "i"; // password to protect admin access

password = ""; // password required to connect to server

hostname="Grenadier-Regiment 187";

motd[]= {"Grenadier-Regiment 187"}; // Welcome message, two lines "," means 'new line'

motdInterval=1; // if motd has multiple lines, how fast to show these in succession (default is 5 seconds).

verifySignatures=0;

voteThreshold=1.1; // when one third agrees, this is enough to confirm a vote

voteMissionPlayers=1; //amount of players to vote mission after one ends used after map rotation.

reportingIP="natneg3.master.gamespy.com"; // private server - no reporting ("armedass.master.gamespy.com" to report to the master server)

kickduplicate=0; // do not allow duplicate id

persistent=0; //keeps game server running after players leave 0=off 1=on

equalModRequired=0; //Makes Players who join have to have the same mod folder as server to be able to join.

BattlEye=0; //Turns the Anti cheat on or off. 0 is off and 1 is on

// These options are important for performance tuning

MinBandwidth = 768000; //* 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 = 2048; //* 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 = 256; //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.001; //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=1000000;

Although we have our server locked with PW as its just for us, a mission dont show up in mission status list when no one is on.

Overall anyone can get on and pick an island, and start a mission.

useing persistent=1; is good for missions like Evolution, and the like where you want to leave the destruction and keep your scores.

This link here will give you some insight into commands for cfgs and other stuff

Complete List of ARMA Commands -(works for Arma 2 as well)http://forums.bistudio.com/showthread.php?t=58761&highlight=voting

BIS Wiki is a good place to look too:

http://community.bistudio.com/wiki/ArmA:_Server_configuration

there is this i seen which im assuming could answer your question qwertz

ArmA II configuration

ArmA II configuration

This example shows how to put all the stock ArmA II 1.05 multiplayer missions into rotation:

class Missions

{

class DM_Deathmatch

{

template = "MP_Deathmatch.Chernarus";

cadetMode = 0;

};

class DM_Detector

{

template = "MP_Detector.Chernarus";

cadetMode = 0;

};

class Team_TeamDeathmatch

{

template = "MP_TeamDeathmatch.Chernarus";

cadetMode = 0;

};

class COOP_Paradrop

{

template = "MP_Paradrop.Chernarus";

cadetMode = 1;

};

class CTI_CivilWar

{

template = "MP_CivilWar.Chernarus";

cadetMode = 1;

};

class CTI_SuperPowers

{

template = "MP_Superpowers.Chernarus";

cadetMode = 1;

};

class CTI_WarWelcome

{

template = "MP_WarWelcome.utes";

cadetMode = 1;

};

class CTI_WhenDiplomacyFails

{

template = "MP_WhenDiplomacyFails.Chernarus";

cadetMode = 1;

};

};

im guessing that if you can put missions in rotation then it would show on your server status as a mission playing. and again to you probably could replace the mission that are stock with either custom or the ones you wanted.

found it here:

Server cfg.

http://community.bistudio.com/wiki/server.cfg

then theres

Kelly's Heroes Dedicated Server setup for Arma 2

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

hope that helps

Share this post


Link to post
Share on other sites

First of all a big "thanks" for the replies.

I have played around with changing persistent=1 to persistent=0 but the behavior does not change at all. Whenever the server is empty, both the TYPE and the MISSION are not displayed in the server browser, and the STATUS line shows "Creating".

Just to be clear - the server is completely configured, including a defined mission cycle, and is otherwise running perfectly (please see the server.cfg file below). The way it works right now is that when the last player leaves the server, the current mission finishes automatically after max 45 minutes, and then the map cycle automatically switches to then next mission in the mission cycle and stays there waiting for the next player to join. Once that happens, it starts that mission. So far this is all as intended.

The only issue that I have is that at that stage, TYPE and MISSION is empty in the server browser when no players are online, and this makes it impossible to be found by players that are scanning for HOLD game play in the server browser - you can only find it if you filter for the name (which means that you have to know it).

Ideally, the server should just start and circle through the missions automatically even with no players online, triggered by the mission time.

Is this maybe something that can be configured in the mission file, i.e. set the mission to start with no players connected (just guessing here, my mission editing skills are close to zero).

There must be a way to create this behaviour, right? :bounce3:

SERVER CONFIG:

Content=Type: application/octet-stream

// GLOBAL SETTINGS
hostname="ArmAcalypse.com PvP (ex-BMF)";	// 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
//reportingIP="armedass.master.gamespy.com";    //trying new reporting ip
logFile="Server.log";				// Tells ArmA-server where the logfile should go and what it should be called

// 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 www.ArmAcalypse.com PvP server ! <<<",
">>> PLEASE READ THE SERVER RULES AT WWW.ARMACALYPSE.COM <<<",
"",""
};
motdInterval=5;				// Time interval (in seconds) between each message

// JOINING RULES
checkfiles[]={};			// Checks if these files are equal to the servers files. If one or more is not, player will be kicked from server.
maxPlayers=50;				// Maximum amount of players. Civilians and watchers, beholder, bystanders and so on also count as player.
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=1;			// 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.

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

// 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 = "kick (_this select 0)"; 	// tampering of the signature detected
onDifferentData= "kick (_this select 0)"; 	// 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 {
class MP0 
    {

      template = aas100_ElectiveSurgery.Chernarus;
      difficulty = "veteran";

    };
class MP1 
    {

      template = aas100_Berezino.Chernarus;
      difficulty = "veteran";

    };
class MP2 
    {

      template = aas50_UtesBrutes.utes;
      difficulty = "veteran";

    };
class MP3 
    {

      template = aas50S_V0_4_embassy_v1_01.Chernarus;
      difficulty = "veteran";

    };
class MP4 
    {

      template = aas50_StarryEyed.Chernarus;
      difficulty = "veteran";

    };
class MP5 
    {

      template = aas50_PobedaDam.Chernarus;
      difficulty = "veteran";

    };
class MP6 
    {

      template = aas50_ElysianFields.Chernarus;
      difficulty = "veteran";

    };
class MP7 
    {

      template = aas100_UrbanCombat.Chernarus;
      difficulty = "veteran";

    };
class MP8 
    {

      template = aas50_TroubledWaters.Chernarus;
      difficulty = "veteran";

    };
class MP9 
    {

      template = aas50_ZelenOfTroy.Chernarus;
      difficulty = "veteran";

    };
class MP10 
    {

      template = aas100_KingOfTheHill.Chernarus;
      difficulty = "veteran";

    };

class MP11 
    {

      template = aas50_IslandFight.Chernarus;
      difficulty = "veteran";

    };
class MP12 
    {

      template = aas50_BattleForKrasnostav.Chernarus;
      difficulty = "veteran";

    };
class MP13
    {

      template = aas50_InTheMist.Chernarus;
      difficulty = "veteran";

    };
class MP14 
    {

      template = aas50_RedsLastStand.Chernarus;
      difficulty = "veteran";

    };
class MP15 
    {

      template = aas50_Nastrovje.Chernarus;
      difficulty = "veteran";

    };
class MP16 
    {

      template = aas50_ChernogorskConflict.Chernarus;
      difficulty = "veteran";

    };
class MP17 
    {

      template = aas50_DubrovkaDisko.Chernarus;
      difficulty = "veteran";

    };
class MP18
    {

      template = aas100_Lumberjack.Chernarus;
      difficulty = "veteran";

    };
class MP19 
    {

      template = aas50_CoastalCombat.Chernarus;
      difficulty = "veteran";

    };
class MP20 
    {

      template = aas100_Beachhead.Chernarus;
      difficulty = "veteran";

    };

};

COMMAND LINE:

-port=2302 -name= -config=server.cfg -netlog -logFile=Server.log  

Edited by qwertz

Share this post


Link to post
Share on other sites

I think your problem is that you end the mission after 45 minutes. Next mission will probably never start without having any players. The only way I can think of is script the missions so that they never end if there are no players on the server, and then if more than 45 minutes have elasped and someone joined, end the mission (because then he can actually start a new one and the server will again show as playing).

If a mission is not running then there is no active mission and thus there is no mission type to show, and missions will not start without players (but will continue when players leave if you use persistent). You just need to make sure there is always a mission running on your server to get what you want.

Share this post


Link to post
Share on other sites
The only way I can think of is script the missions so that they never end if there are no players on the server, and then if more than 45 minutes have elasped and someone joined, end the mission (because then he can actually start a new one and the server will again show as playing).

Great idea. Any hints how and where to do that? Do I have to edit the mission file? Sorry for the noobish questions, I have never edited missions.

Another idea might be to script the missions so that they automatically start with zero players, i.e. when the server is empty when a mission ends, the next mission starts automatically w/o players online. Can this be scripted?

Thanks for your help ;)

Share this post


Link to post
Share on other sites

You can't make a mission start with no players, there has to be someone there to hit the "start" button. That is, unless you're really cool and have some admin "bot" (that is, an actual program that taps into Arma 2 and runs stuff as if it was a player, not an in-game bot) that logs in the game for you and starts the next mission every time one is over.

The most reasonable solution (which is still quite a bit of work) is to figure out how the missions that are currently running on your server end (scripting-wise), and edit that script so the mission continues forever if no players are present, and then end as soon as a player logs in (see example code). The only problem with that is, that if a player joins, loads the mission and then leaves before the next mission actually starts (which takes ~1-2 min, at least with default server settings), the server will still get stuck in "waiting" mode.

// I'm assuming end=true; is what ends the mission. You'll have to find what actually ends the mission in your situation and edit that instead.
// This code replaces the "end=true" line
if ({isPlayer _x} count allUnits == 0) then
{
  // no players, keep the mission running until one connects
  connected=false;
  onPlayerConnected "connected=true;";
  waitUntil {connected};
  // someone finally connected, finish the mission so a new one can start
  end=true;
}
else
{
  //players are on the server, so end the mission normally
  end=true;
};

If you're having trouble editing the specific mission you're probably best off asking whoever made the mission how to do it.

Share this post


Link to post
Share on other sites
// comments are written with "//" in front of them.

// server.cfg

maxPlayers = "6"

passwordAdmin = "i"; // password to protect admin access

password = ""; // password required to connect to server

hostname="Grenadier-Regiment 187";

motd[]= {"Grenadier-Regiment 187"}; // Welcome message, two lines "," means 'new line'

motdInterval=1; // if motd has multiple lines, how fast to show these in succession (default is 5 seconds).

verifySignatures=0;

voteThreshold=1.1; // when one third agrees, this is enough to confirm a vote

voteMissionPlayers=1; //amount of players to vote mission after one ends used after map rotation.

reportingIP="natneg3.master.gamespy.com"; // private server - no reporting ("armedass.master.gamespy.com" to report to the master server)

kickduplicate=0; // do not allow duplicate id

persistent=0; //keeps game server running after players leave 0=off 1=on

equalModRequired=0; //Makes Players who join have to have the same mod folder as server to be able to join.

BattlEye=0; //Turns the Anti cheat on or off. 0 is off and 1 is on

// These options are important for performance tuning

MinBandwidth = 768000; //* 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 = 2048; //* 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 = 256; //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.001; //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=1000000;

Offtopic but your proformance settings are in the wrong place. They need to be in arma.cfg or they wont work

[Edit] Opps quoted wrong message

Edited by brit~XR

Share this post


Link to post
Share on other sites

What if you set the server's name to include the word "HOLD", for example

hostname="ArmAcalypse.com PvP (ex-BMF) [HOLD]";

Then, if you filter on the word "hold", your server would show up.

Share this post


Link to post
Share on other sites
You can't make a mission start with no players, there has to be someone there to hit the "start" button. That is, unless you're really cool and have some admin "bot" (that is, an actual program that taps into Arma 2 and runs stuff as if it was a player, not an in-game bot) that logs in the game for you and starts the next mission every time one is over.

The most reasonable solution (which is still quite a bit of work) is to figure out how the missions that are currently running on your server end (scripting-wise), and edit that script so the mission continues forever if no players are present, and then end as soon as a player logs in (see example code). The only problem with that is, that if a player joins, loads the mission and then leaves before the next mission actually starts (which takes ~1-2 min, at least with default server settings), the server will still get stuck in "waiting" mode.

If you're having trouble editing the specific mission you're probably best off asking whoever made the mission how to do it.

Thanks man, I will check this out.

What if you set the server's name to include the word "HOLD", for example

hostname="ArmAcalypse.com PvP (ex-BMF) [HOLD]";

Then, if you filter on the word "hold", your server would show up.

Thats a nice partial workaround - however, people using the "gameptype" filter will still not find it. Nevertheless, good and easy tip.

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  

×