Cougar is an efficient & scalable multi-proxy queue system written in kotlin, requires a redis server, and uses gradle as its build management tool.
Modules
Cougar contains three different modules, an explanation of each module is listed below.
Features
Configuration
Cougar handles language configuration through multiple json files located within the server runtime directory. All configuration files are listed below:
iteration.json
language.json
queues.json
Pricing
Note
There currently is no priority implementations, but we are able to add them on request.
Join our discord for more questions, inquiries and support.
Modules
Cougar contains three different modules, an explanation of each module is listed below.
| Module | What does it do? | Dependencies |
| common | Contains all code shared across our other modules | None |
| server | Handles queue iteration, updates, and player data processing | A redis server |
| spigot | Handles everything the player sees, player priorities, and player version mapping. | scala-store, a redis server |
| velocity | Handles player disconnections at proxy-level | scala-store, a redis server |
Features
- Configurable settings at server-level.
- Allow players to switch servers without being kicked from their queue.
- Uses Redis to both synchronize & cache the latest server instance & queue data.
- Server-intensive processes handled asynchronously.
- More information on this can be seen within the
scala-storeproject: click to view
- More information on this can be seen within the
- Queues automatically pause/resume based on its targetServer status.
whitelisted: Only whitelisted players (on its target server) are able to connect.offline: All players are unable to join until the first update packet is sent from the targetServer on its load.
- An easy-to-use & basic API to access queue information, along with its target server instance.
Configuration
Cougar handles language configuration through multiple json files located within the server runtime directory. All configuration files are listed below:
iteration.json
- iterationDelay: The speed at which the queue task iterates. (in milliseconds)
- updateStreamIterationDelay: The speed at which the queue broadcast task iterates. (in milliseconds)
JSON:
{
"iterationDelay": 250,
"updateStreamIterationDelay": 5000
}
language.json
- updateMessage: The message (with bukkit color codes) which will be parsed & sent to the player in the queue.
- {whitelisted,offline}Addition: The text which will be added onto the updateMessage if the server is: offline, whitelisted.
JSON:
{
"updateMessage": "\n§eYou're position §b{pos}§e/§b{max}§e in the §b{queue}§e queue.\n§7Ranks get a higher priority in queues: §f§ostore.some.server",
"whitelistedAddition": "§cThe server you're queued for is currently whitelisted.",
"offlineAddition": "§cThe server you're queued for is currently offline."
}
queues.json
- targetServerId: The internal id of the server this queue is attached to.
- fancyDisplayName: The display name players will view when receiving queue updates.
- allowedProtocols: The list of allowed protocol version numbers.
Code:
{
"queues": [
{
"targetServerId": "something",
"fancyDisplayName": "Something Queue",
"allowedProtocols": [5, 47]
}
]
}
Pricing
- JARs: $35
- Source: no L
- Purchase: https://discord.gg/ZrDZsbtf
Note
There currently is no priority implementations, but we are able to add them on request.
Join our discord for more questions, inquiries and support.
- Type
- Offering
- Exclusivity
-
- Non-exclusive
- Server software
-
- Bukkit
- Spigot
- Paper
- Other
- Supported versions
-
- 1.7
- 1.8
- 1.9
- 1.10
- 1.11
- 1.12
- 1.13
- 1.14
- 1.15
- 1.16
- 1.17
- 1.18
Attachments
Last edited:
