Automatically manage your server's maximum player limit with in-depth configurable options.

Supported Games

Dynamic Population is a server-side plugin that assists servers with their Max Player Count and will automatically adjust it in reference to current player count, queued players, and Average Server FPS.

Installation

  1. Insert the plugin into your oxide/plugins folder
  2. Load the plugin; It will generate a config file located in oxide/config and sequentially unload itself
  3. Insert your server-specific variables within the configuration file and change Enable_Plugin to true
  4. Load DynamicPopulation

Configuration

Dynamic Population has two main configuration categories, MaxPlayer control with and without Queueing.

  1. With queueing enabled, Dynamic Population will queue your server to a specific point before increasing pop.

  2. With queueing disabled, Dynamic Population will simply increase your server pop once the amount of open slots goes below a specific point. ( Dynamic Population will not go above your set MaxPlayers, and will queue past that point )

1. Global Variables

Whether your server has queueing enabled or disabled, some variables are global within the two. If your server pop goes below a specific threshold, Dynamic Population will decrease your MaxPlayers.

  1. If the amount of open slots goes above Decrease_Pop_Threshold, your server's Max Players will decrease by Pop_Decrease_Amount.

2. Dynamic Population with Queueing Enabled

  1. With queueing enabled, Dynamic Population will not increase your server pop until it reaches a certain threshold.Example: If Queue_Increase_Threshold is set to 10, your server pop will increase once there are 10 players in the queue.

  2. If you would like the number of players over the amount of Max Players to count as queue, simply enable OverageIsQueue. Example: If your server has 180/175 with 5 in the queue, DynamicPopulation will count this as 10 in the queue.

  3. Your server's Max Players will decrease under the same circumstances as stated in 1. Global Variables

3. Dynamic Population with Queueing Disabled

  1. With queueing disabled, Dynamic Population will simply increase your server pop once the number of open slots goes belos a specific value. Example: Once your server's amount of open slots goes below Increase_Pop_Threshold, your server's Max Players will increase by Pop_Increase_Amount.

  2. Your server's Max Players will decrease under the same circumstances as stated in 1. Global Variables

4. FPS Limiting & Additional Variables

If FPS_Limiting is enabled, Dynamic Population will not increase your server's Max Players if your current Average FPS is below your set value. Default: Enabled, 15 FPS

Enable_Logs will display a console message when it changes your server's Max Players. Default: Enabled

Default Configuration

{
  "PluginToggles": {
    "Enable_Plugin": false,
    "Enable_Queueing": true,
    "OverageIsQueue": true,
    "FPS_Limiting": true,
    "Enable_Logs": true
  },
  "BaseServerVariables": {
    "Server_MinPlayers": 175,
    "Server_MaxPlayers": 250,
    "Average_FPS_Limit": 15
  },
  "DecreasePopOptions": {
    "Decrease_Pop_Threshold": 10,
    "Pop_Decrease_Amount": 5
  },
  "QueuedEnabledOptions": {
    "Queue_Increase_Threshold": 10,
    "Pop_Increase_Amount": 5
  },
  "QueueingDisabledOptions": {
    "Increase_Pop_Threshold": 5,
    "Pop_Increase_Amount": 5
  }
}
MIT License

Copyright (c) 2021 Aspectdev

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

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

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