Jump to content
ColColonCleaner

Adaptive Server Size (1.3.5.3 - 06/14/15)

Recommended Posts

Originally Posted by falcontx*:

 

Description

This plug-in is intended to change the server size adaptively based upon the number of players currently on the server. The player count and desired server size is reevaluated when a player joins or leaves and changes occur dynamically throughout each round. When calculating the current number of players, the plug-in includes players who are joining the game, but are not in the PRoCon player list, in order to attempt to mimic the number displayed on Battlelog. Due to the fact that player timeouts aren't reported to PRoCon, it's not perfect, but it's accurate 80-90% of the time.

 

Normally, if the server size is modified to a value greater than what it was when the round began, players exceeding the previous size are required to wait at a black screen until the round ends. This plugin actively works around this issue by setting the server to it's max size before each round begins.

 

Optionally, the server can display welcome messages to new players when only a limited number of players are on the server in an effort to convince them to stick around and start the server. It will also notify all players on the server when new players join so that they will hopefully stick around if they see people joining.

 

An adaptive idle kick feature is also available, which will disable the idle kick when less than a specified number of players online.

 

Commands

This plug-in has no in-game commands.

 

Settings

 

Adaptive Server Size

Enable adaptive server size?

If enabled, changes the server size based upon the current number of players.

 

On startup, assume round started at max server size?

When the plugin initially starts up, it has no way of knowing if the current round started at the maximum server size, or not. By default, if the server is empty, it will restart the round at the maximum server size, but if players are present, it will assume that the round started with the current server size, and will not increase the server size until the current round ends. If this option is enabled, when the plugin starts up, it will assume that the current round started at the maximum server size and make immediate server size changes, as necessary.

 

Display welcome/join messages to help start server?

If enabled, the server will display welcome messages to new players when only a limited number of players are on the server to encourage them to stick around and help start the server. It will also notify all players on the server when new players join so that they will hopefully stay if they see people joining.

 

Display messages until how many players are on?

The welcome/join messages will only be displayed until this number of players have joined. It should probably be set to somewhere between 3 and 5 players, as once 4 to 6 players are on your server, it should begin to fill up on it's own.

 

Welcome messages

These messages are sent to new players as soon as they reach the deploy screen. The second message is sent 5 seconds after the first. [soldierName] is replaced by the new player's name.

 

Player joining messages

These messages are sent to all players currently on the server when new player(s) are joining. The second message is sent 5 seconds after the first. [joinCount] is replaced by the number of players who are currently joining.

 

Maximum server size

The maximum number of slots that your server is allowed to have.

 

Size with X players

The server size that will be set when X players are active on the server.

 

Maximum [Game Mode] size

The maximum server size that will be set when the specified game mode is active

 

Adaptive Idle Kick

Enable adaptive idle kick?

If enabled, disables the idle kick time when less than the specified number of players are online.

 

Disable idle kick until how many players are on?

Once this number of players is reached, idle kick will be enabled and set to the specified value.

 

Desired idle kick time, in seconds

The number of seconds that the idle kick timer will be set to, once it has been enabled.

 

Extras

Enable debug output?

If enabled, displays debug info in the console window.

 

Development

 

Changelog

1.3.5.3 (06/14/2015)

- improved compatibility with BFHL

1.3.5.2 (06/13/2015)

- improved compatibility with BFHL

1.3.5.1 (03/30/2015)

- idle kick disable sets idle kick to 86400 for BFHL since 0 isn't valid

1.3.5.0 (03/26/2015)

- added support for BFHL

1.3.4.6 (02/05/2014)

- idle kick disable sets idle kick to 86400 for BF4 since 0 isn't valid

1.3.4.5 (11/26/2013)

- changed max players back to 64 for BF4

1.3.4.4 (11/05/2013)

- added game detection and support for up to 70 players for BF4

1.3.4.1 (10/31/2013)

- added include file in BF4 folder

1.3.4.0 (06/14/2012)

- game modes now pulled from BF3.def to ensure compatibility with new and all future game modes

- welcome message now sent only to new player instead of team

- player joining messages now limited to once every 15-30 seconds in order to prevent spam

1.3.2.7 (03/30/2012)

- more minor compatibility changes due to PRoCon/R-20 updates

1.3.2.6 (03/29/2012)

- minor compatibility changes due to upcoming PRoCon/R-20 updates

1.3.2.5 (01/05/2012)

- fixed wrong number of players detected when listplayers not called with 'all'

- welcome/join messages will be skipped if they are left empty

1.3.2.3 (12/31/2011)

- added code to prevent restart if certain variables are not initialized for some reason

1.3.2.2 (12/28/2011)

- fixed server resize not working immediately after server restart in some cases

1.3.2.1 (12/22/2011)

- fixed idle kick timeout was not being reset after server restart

1.3.2.0 (12/19/2011)

- updated to properly override API methods

- changed friendly names for map sizes to match PRoCon 1.1.3.1

- added Adaptive Idle Kick (commissioned by Guy0510)

- raised the max player limit for displaying welcome messages (previously 8)

1.3.1.2 (12/13/2011)

- added maximum size for Conquest Small Alt maps

1.3.1.1 (12/12/2011)

- added round detection timer in case OnLevelLoaded event isn't triggered

1.3.1.0 (12/12/2011)

- changed timer method to prevent sleep lock

- fixed round start detection error caused by spawn after round end

1.3.0.1 (12/10/2011)

- fixed unable to change number of players for welcome message display

1.3.0.0 (12/09/2011)

- added optional messages to encourage players to stay when server is just getting started

- removed QuickMatch options, since it's been documented that setting the variables to 8/4 is not required

- minimum server size no longer restricted

- fixed multiple restarts after server stops responding for a minute at the end of a round

1.2.3.1 (12/06/2011)

- adjusted allowable option values due to R11 patch

1.2.3.0 (12/05/2011)

- added additional checks on player join/leave in order to improve accuracy

- added PayPal donation option

1.2.2.0 (11/26/2011)

- now includes joining players when calculating server size, in order to match Battlelog (most of the time)

1.2.1.0 (11/22/2011)

- fixed limits for various game modes not being enforced

- adjusted allowable option values due to R9 patch

1.2.0.1 (11/22/2011)

- fixed inability to change max team deathmatch size

1.2.0.0 (11/21/2011)

- server size not initialized properly when "On startup, assume round started at max server size_" is set

- set server size to round start size when plugin is disabled

- fixed bug caused by serverInfo occasionally providing incorrect server size

- added max player options for various game modes to prevent increases beyond what's desired

- other minor fixes

1.1.0.0 (11/20/2011)

- max server size is set before each level is loaded, in order to provide dynamic changes without restarting

- restart options removed, since they are no longer necessary

- size for x players options are now saved and restored properly

1.0.1.0 (11/19/2011)

- server size was not being adjusted in some instances

- minor fixes

1.0.0.0 (11/19/2011)

- initial version

 

Support

 

If you are having a problem, please follow the steps detailed in this thread:

showthread....a-plugin-issue*

 

Contribution

 

If you find this plugin useful, please consider making a donation via the plugin details page inside PRoCon! Donations help support the servers used for development and provide incentive for additional features and new plugins!

 

Thanks to those who have donated! If you haven't, yet, please consider the value of filling your servers more quickly and keeping them full much longer than would ordinarily be possible without a lot of manual work!

 

Download

 

Latest version is attached.

 

Attached Files:


* Restored post. It could be that the author is no longer active.

Share this post


Link to post

Originally Posted by DeadWalking*:

 

I will be testing this beauty here shortly on at least one of our servers. Will post back if I notice anything odd or have a problem

 

Thank You for the plugin.


* Restored post. It could be that the author is no longer active.

Share this post


Link to post

Originally Posted by EBassie*:

 

Nice! I was waiting for this one! Will test is out shortly


* Restored post. It could be that the author is no longer active.

Share this post


Link to post

Originally Posted by PBSGTS*:

 

Sweet plugin, thank-you very much.

 

I'm having a problem getting the size to change automatically, even if I restart the level the plugin tells me it's waiting for the round to end.


* Restored post. It could be that the author is no longer active.

Share this post


Link to post

Originally Posted by pharbehind*:

 

Just gave this a go on my 64 slot server after one the routine daily crashes.

 

The plugin worked great until I noticed that it never increased passed 32 slots, even though there were 31 in game. I looked at the settings, and it should have went to 48 once there were 25. So, i had to adjust it myself from that point on. Changing to 48 and 64 automatically aren't working.

 

my settings:

 

Enable QuickMatch settings = No

 

Enable Adaptive settings = Yes

Restart round... = Yes, but only if players are waiting

# needed to restart = 3

Do not restart if this many = 16

Max server size = 64


* Restored post. It could be that the author is no longer active.

Share this post


Link to post

Originally Posted by falcontx*:

 

Those of you having issues, do you have the debug output turned on? That information would help me. I'd also be willing to work with you more closely to solve any issues. Just shoot me a PM or join our TeamSpeak server at TS3.BITGOBLIN.COM


* Restored post. It could be that the author is no longer active.

Share this post


Link to post

Originally Posted by PBSGTS*:

 

Those of you having issues, do you have the debug output turned on? That information would help me. I'd also be willing to work with you more closely to solve any issues. Just shoot me a PM or join our TeamSpeak server at TS3.BITGOBLIN.COM

Here's what I get from the debug,

 

*restart level*

[22:53:54 35] AdaptiveServerSize: INFO -> Level loaded.

[22:54:10 58] AdaptiveServerSize: TASK -> 0 players online. Server size should be 8; Round started at 16; waiting for round to end.

*restart level*

[22:55:47 82] AdaptiveServerSize: INFO -> Level loaded.

[22:56:12 22] AdaptiveServerSize: TASK -> 0 players online. Server size should be 8; Round started at 16; waiting for round to end.

 

It does it if I load a new map also.

 

I have both adaptive quickmatch and adaptive server on.

 

Thanks for the quick response!


* Restored post. It could be that the author is no longer active.

Share this post


Link to post

Originally Posted by falcontx*:

 

I found the issue. Please stand by for an update.


* Restored post. It could be that the author is no longer active.

Share this post


Link to post

Originally Posted by WaxMyCarrot*:

 

Has this issue been fixed or should I wait till you reply?


* Restored post. It could be that the author is no longer active.

Share this post


Link to post

Originally Posted by falcontx*:

 

Still working on it. Give me another 30 minutes, or so. I removed the original attachment to prevent confusion.


* Restored post. It could be that the author is no longer active.

Share this post


Link to post

Originally Posted by falcontx*:

 

New version is up. Fixed the issues mentioned by pharbehind and PBSGTS. (It wasn't changing the server size if "No; wait until end of round" was selected or when the number of players specified in "Do not restart if more than this number of players is online" was exceeded.)


* Restored post. It could be that the author is no longer active.

Share this post


Link to post

Originally Posted by PBSGTS*:

 

Sweet!

 

Working great now!


* Restored post. It could be that the author is no longer active.

Share this post


Link to post

Originally Posted by 0mni*:

 

We have found a few tricks to help populate our server. We start on a SDM with 4 players. Then increase till we hit 16. We then swap to our regular rotation of Conquest and Rush. Do you think you can enable to ability to select 1 or 2 maps, even if they are not in rotation, so we can have SDM when under 16 players ?

 

We have also found that if you set the player limit to 32 players before the round starts, you can decrease it to 4, 8, 16 etc .. without people getting the black screen bug. Can you make the plugin work the same ? IE: set the max players available in the server to 32 at the end of each round. And then decrease it to the plugin limits defined in the settings.


* Restored post. It could be that the author is no longer active.

Share this post


Link to post

Originally Posted by falcontx*:

 

We have found a few tricks to help populate our server. We start on a SDM with 4 players. Then increase till we hit 16. We then swap to our regular rotation of Conquest and Rush. Do you think you can enable to ability to select 1 or 2 maps, even if they are not in rotation, so we can have SDM when under 16 players ?

Changing map lists and game modes is beyond the scope of this plugin. However, I'm currently working on a different plugin that would allow a limited selection of maps for few players, so I'll see if I can work different game modes in, as well.

 

We have also found that if you set the player limit to 32 players before the round starts, you can decrease it to 4, 8, 16 etc .. without people getting the black screen bug. Can you make the plugin work the same ? IE: set the max players available in the server to 32 at the end of each round. And then decrease it to the plugin limits defined in the settings.

I had actually thought about doing just that when as I was playing earlier, and have already started implementing it. If you don't see the new version tonight, you'll see it tomorrow.

* Restored post. It could be that the author is no longer active.

Share this post


Link to post

Originally Posted by HexaCanon*:

 

you are awesome, i love you.

 

i will donate to you if those two feature are implemented (even if it was different plugin)..


* Restored post. It could be that the author is no longer active.

Share this post


Link to post

Originally Posted by traustic*:

 

Is there a way the plugin could check the player count and modify the max players if needed every x amount of minutes?

 

You could set the plugin for 3 minutes and every 3 minutes it would check and adjust the max player count. It would also not end the round and gameplay would continue as usual.


* Restored post. It could be that the author is no longer active.

Share this post


Link to post

Originally Posted by falcontx*:

 

Is there a way the plugin could check the player count and modify the max players if needed every x amount of minutes?

 

You could set the plugin for 3 minutes and every 3 minutes it would check and adjust the max player count. It would also not end the round and gameplay would continue as usual.

The plugin checks and makes adjustments much more often than 3 minutes. It uses the OnServerInfo event to schedule checks, which usually happens every 10-15 seconds. Restarting generally isn't required unless you're changing the server size to a value larger than it was when the current round started. However, when you're getting a server going, this tends to happen a lot. The next version, which I should have out later today, will work around this issue by setting the server size to it's maximum value before each round begins, so that dynamic changes can occur throughout the round without requiring a restart.

* Restored post. It could be that the author is no longer active.

Share this post


Link to post

Originally Posted by HexaCanon*:

 

Changing map lists and game modes is beyond the scope of this plugin. However, I'm currently working on a different plugin that would allow a limited selection of maps for few players, so I'll see if I can work different game modes in, as well.

 

 

I had actually thought about doing just that when as I was playing earlier, and have already started implementing it. If you don't see the new version tonight, you'll see it tomorrow.

yes it is very needed to have different maplists .. atm my 24 man TDM server and 32 man Rush servers are full .. the conquest large 64 man server has people but it is not over 20 people ... thats because the QM filter usually has 32 or 64 man for conquest and i never have max players over 9 of the available people (if i have 12 it is 16 . if 15 i have 24 [difference of 4-0]) thats also because the filter for QM usually have either 1-5 free slots or 6-10

* Restored post. It could be that the author is no longer active.

Share this post


Link to post

Originally Posted by Bobbeh*:

 

I love this plugin! It's filling up my server like crazy. Atm it has stopped at 28 players.

Any chance a admin message will be integrated? Something in the likes of: "ADMIN: Round restart in 3 sec."


* Restored post. It could be that the author is no longer active.

Share this post


Link to post

Originally Posted by falcontx*:

 

I love this plugin! It's filling up my server like crazy. Atm it has stopped at 28 players.

Any chance a admin message will be integrated? Something in the likes of: "ADMIN: Round restart in 3 sec."

Restarts will no longer be necessary with the next version, since all rounds will be started with the maximum server size, then dynamically changed.

* Restored post. It could be that the author is no longer active.

Share this post


Link to post

Originally Posted by Bobbeh*:

 

Restarts will no longer be necessary with the next version, since all rounds will be started with the maximum server size, then dynamically changed.

Great! That's how I fill up my server manual. Starting the round with max slots then tone it down. Cant wait!

* Restored post. It could be that the author is no longer active.

Share this post


Link to post

Originally Posted by MorpheusX(AUT)*:

 

Why does changing the maxPlayers value need a restart anyways? That can all be done on the fly, no matter with what settings you started the round...

 

EDIT: or is that fixed in your code?


* Restored post. It could be that the author is no longer active.

Share this post


Link to post

Originally Posted by falcontx*:

 

Why does changing the maxPlayers value need a restart anyways? That can all be done on the fly, no matter with what settings you started the round...

 

EDIT: or is that fixed in your code?

Normally, even if done by hand, if the server size is modified to a value greater than what it was when the round began, players exceeding the previous size are required to wait at a black screen until the next round begins. In the previous version, the restart options provided a way to deal with this gracefully. However, since I'm revising the code to ALWAYS start the rounds at max player size in the next release, this will no longer be an issue.

* Restored post. It could be that the author is no longer active.

Share this post


Link to post

Originally Posted by MorpheusX(AUT)*:

 

Nevermind, I just realised :smile:

28 players on the server according to procon, but just 16 ingame. I never really associated that blackscreen with the playercount being higher than the roundstart playercount :biggrin:

 

Looking forward to the next release. Servers are getting fuller much faster, thanks to "epic" quickmatch


* Restored post. It could be that the author is no longer active.

Share this post


Link to post

Originally Posted by EBassie*:

 

Found a bug:

 

When procon has been closed and started again, all values I've set to the max player have been reset to the default ones.

Server with 0 players has to be the max player slots, but it's always reset to 8.


* Restored post. It could be that the author is no longer active.

Share this post


Link to post

Originally Posted by falcontx*:

 

Found a bug:

 

When procon has been closed and started again, all values I've set to the max player have been reset to the default ones.

Server with 0 players has to be the max player slots, but it's always reset to 8.

I can confirm this bug. It will be fixed, too.

* Restored post. It could be that the author is no longer active.

Share this post


Link to post

Originally Posted by EBassie*:

 

Normally, even if done by hand, if the server size is modified to a value greater than what it was when the round began, players exceeding the previous size are required to wait at a black screen until the next round begins.

Are you sure about this? Is the black screen issue related to the max slots count being altered? I think it's just a bug in the game / battlelog.

I've been testing this, starting a round at 8 players and changing it manually to 16 I could still join as 10th player without having a black screen.

 

Or do I understand it wrong? :smile:


* Restored post. It could be that the author is no longer active.

Share this post


Link to post

Originally Posted by MorpheusX(AUT)*:

 

I just had that problem a few minutes ago. Started round with 16 slots, set them to 32 manually. Lots of people were joining (server was @ 32 nearly all the time), but we just had 16 ingame, and 16 in the procon player list.


* Restored post. It could be that the author is no longer active.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Our picks

    • I wanted I let you know that I am starting to build out the foundation for the hosting services that I talked about here. The pricing model I was originally going for wasn't going to be suitable for how I want to build it. So instead I decided to offer each service as it's own product instead of a package deal. In the future, hopefully, I will be able to do this and offer discounts to those that choose it.

      Here is how the pricing is laid out for each service as well as information about each. This is as of 7/12/2020.

      Single MySQL database (up to 30 GB) is $10 USD per month.



      If you go over the 30 GB usage for the database then each additional gigabyte is charged at $0.10 USD each billing cycle. If you're under 30GB you don't need to worry about this.


      Databases are replicated across 3 zones (regions) for redundancy. One (1) on the east coast of the USA, One (1) in Frankfurt, and One (1) in Singapore. Depending on the demand, this would grow to more regions.


      Databases will also be backed up daily and retained for 7 days.




      Procon Layer will be $2 USD per month.


      Each layer will only allow one (1) game server connection. The reason behind this is for performance.


      Each layer will also come with all available plugins installed by default. This is to help facilitate faster deployments and get you up and running quickly.


      Each layer will automatically restart if Procon crashes. 


      Each layer will also automatically restart daily at midnight to make sure it stays in tip-top shape.


      Custom plugins can be installed by submitting a support ticket.




      Battlefield Admin Control Panel (BFACP) will be $5 USD per month


      As I am still working on building version 3 of the software, I will be installing the last version I did. Once I complete version 3 it will automatically be upgraded for you.





      All these services will be managed by me so you don't have to worry about the technical side of things to get up and going.

      If you would like to see how much it would cost for the services, I made a calculator that you can use. It can be found here https://ezrcon.com/calculator.html

       
      • 10 replies
    • I have pushed out a new minor release which updates the geodata pull (flags in the playerlisting). This should be way more accurate now. As always, please let me know if any problems show up.

       
      • 6 replies
×
×
  • Create New...

Important Information

Please review our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.