User Guide ‐ Main interface ‐ Automods ‐ Seeding - MarechJ/hll_rcon_tool GitHub Wiki

🧭 You are here : Wiki home / User Guide / Main interface / Automods / Seeding


image

This automod enforces different seeding rules :

  • forbids defined roles
  • forbids defined weapons usage
  • forbids the capture of the 4th point, forcing the fight to stay on middle point

This automod has 3 steps:

  1. warning via direct message (Y times) ;
  2. punish (Z times) ;
  3. kick

[!Note]
The state cycle for a given player only resets once the rule-violation is fixed.
So, for example, if you disable the kick and have 3 punishes configured, once the 3 punishes are through, that's it : nothing will happen anymore to the players, even if they still break seeding rules.

Parameters (CODE view)

"enabled"

Enables or disables the whole automod.

Default (disabled) :

  "enabled": false,

To enable :

  "enabled": true,

"dry_run"

If this is set to true, NO warning / punish / kick will be applied for real. It turns the code into a "simulation" mode and only reports to the Discord audit log webhook.

Default (enabled) :

  "dry_run": true,

To disable :

  "dry_run": false,

"discord_webhook_url"

Discord webhook URL where audit logs should be sent.

[!NOTE] If you don't know how to create a Discord webhook, you can have a look at this video.

Default : null

  "discord_webhook_url": null,

With a webhook :

  "discord_webhook_url": "https://discord.com/api/webhooks/...",

"whitelist_flags"

This is either an empty list [], or a list of flags to exempt a player from this automod features. To use, add a flag or multiple flags to the list, then flag the players you want to exempt in the CRCON UI.

Default :

  "whitelist_flags": [
    "🚨"
  ],

No whitelist flag :

  "whitelist_flags": [],

Multiple whitelist flags :

  "whitelist_flags": [
    "🚨",
    "❤️"
  ],

"immune_roles"

This is either an empty list ([]), or a list of roles who will be exempt from this automod features.
Available roles are : rifleman, assault, automaticrifleman, medic, support, heavymachinegunner, antitank, engineer, crewman, sniper

  "immune_roles": [
    "medic"
  ],

"immune_player_level"

Any player having a level equal or greater than this number will be exempt from this automod features.
Set to 0 to disable.

  "immune_player_level": 0,

"dont_do_anything_below_this_number_of_players"

The automod won't do anything below this number of players on the server.
Set to 0 if you want the automod to be always active, regardless the number of players.

Default :

  "dont_do_anything_below_this_number_of_players": 0,

"announcement_enabled"

Enable/disable the ingame message that will be sent to all the players who enters the server, telling them the seed rules to apply.

"announcement_message"

An ingame message that will be sent to all the players who enters the server, telling them what seed rules to apply.
{disallowed_roles} and {disallowed_weapons} variables will autopopulate according to your settings (see below)

Server is seeding !

You're not allowed to go beyond the mid zone.

You can't play
{disallowed_roles}.

You can't use
{disallowed_weapons}.

Warnings

"number_of_warnings"

Send a direct warning message to the players that violate seeding rules.

Default (disabled) :

  "number_of_warnings": 0,

Enabled (2 warnings) :

  "number_of_warnings": 2,

Enabled (infinite warnings) :

  "number_of_warnings": -1,

"warning_interval_seconds"

This is the number of seconds until moving to the next warning (or to the punish step if 'number_of_warnings' is reached).

Default :

  "warning_interval_seconds": 60,

"warning_message"

The following variables are available :

  • {player_name} ;
  • {squad_name} ;
  • {received_warnings} ;
  • {max_warnings} ;
  • {next_check_seconds}.

Default :

  "warning_message": "Warning, {player_name}! Your squad don't have an officer anymore.\nOne of you must become officer.\nYou will be punished after {max_warnings} warnings (you already received {received_warnings}), then kicked.\nNext check will happen automatically in {next_check_seconds}s.",

Punish

[!Note]
If you have set number_of_warnings to -1, it will never reach that step.

"number_of_punishments"

Start punishing if the player still violates seeding rules after number_of_warnings * warning_interval_seconds

Default (disabled) :

  "number_of_punishments": 0,

Advice : set number_of_warnings to -1 if you set this to 0. Enabled (2 punishes) :

  "number_of_punishments": 2,

Enabled (infinite warnings) :

  "number_of_punishments": -1,

"min_squad_players_for_punish"

Disable the punishes until the squad has at least this number of players.
ie : if you set 3, a squad of 2 will be immune to punishes (and kicks if enabled).

Default :

  "min_squad_players_for_punish": 0,

"min_server_players_for_punish"

This option is the same as above, but for the entire server.
If the server has less players than the number you set below, no punishes / kicks will be applied.

Default :

  "min_server_players_for_punish": 0,

"punish_interval_seconds"

This is the number of seconds to wait between punishes.

Default :

  "punish_interval_seconds": 60,

"punish_message"

The following variables are available :

  • {player_name} ;
  • {received_punishes} ;
  • {max_punishes} ;
  • {next_check_seconds} ;
  • {violation}.

Default :

  "punish_message": " Your squad don't have an officer anymore.\nOne of you must become officer.\nYou're being punished by a bot ({received_punishes}/{max_punishes}).\nNext check in {next_check_seconds} seconds",

Kick

[!Note]
If you have set number_of_punishments to -1, it will never reach that step.

"kick_after_max_punish"

Set to false if you don't want to kick players after they reached number_of_punishments.
Advice : set number_of_punishments to -1 if you set this to false.

Default :

  "kick_after_max_punish": true,

"min_squad_players_for_kick"

Same behavior as for the punishes :
if the squad has less players than this, automod won't kick.
ie : if you set 3, a squad of 2 will be immune to kicks.

Default :

  "min_squad_players_for_kick": 0,

"min_server_players_for_kick"

This option is the same as above, but for the entire server.
If the server has less players than the number you set below, no kicks will be applied.

Default :

  "min_server_players_for_kick": 0,

"kick_grace_period_seconds"

Number of seconds to wait before kicking after number_of_punishments has been reached.

Default :

  "kick_grace_period_seconds": 60,

"kick_message"

The following variables are available :

  • {player_name} ;
  • {squad_name} ;
  • {kick_grace_period} ;
  • {violation}.

Default :

  "kick_message": " Your squad don't have an officer anymore.\nOne of you must become officer.\nYour grace period of {kick_grace_period}s has passed.\nYou failed to comply with the previous warnings.",

"Disallowed roles"

"min_players"

The minimum number of players that have to be connected for the "Disallowed roles" rule to apply.
(ie : if set on 50, the rule will be disabled until the 51st player has entered the game)
Disabled : 0
Max : 100
Recommended : 0

  "min_players": 0,

"max_players"

The maximum number of players that have to be connected for the "Disallowed roles" rule to apply.
(ie : if set on 50, the rule will be disabled after the 51st player has entered the game)
Disabled : 0
Max : 100
Recommended : 0

  "max_players": 0,

"roles"

A list of "Disallowed roles"

Available roles are : rifleman, assault, automaticrifleman, medic, support, heavymachinegunner, antitank, engineer, crewman, sniper, officer, tankcommander, spotter, armycommander.

[!Note]
never use rifleman, as it is the default role all the players get when entering the game.

[!Note]
never use officer, as it would forbid any infantry squad to be created.

    "roles": {
      "spotter": "Reconnaissance spotter",
      "sniper": "Reconnaissance sniper",
      "tankcommander": "Tank officer",
      "crewman": "Tank crew"
    },

"violation_message"

This is a part of the message that will be sent to the player.
The {role} variable will be autopopulated with the roles you have defined above.

    "violation_message": "You can't play\n{role}\n",

"Disallowed_weapons"

"min_players"

The minimum number of players that have to be connected for the "Disallowed_weapons" rule to apply.
(ie : if set on 50, the rule will be disabled until the 51st player has entered the game)
Disabled : 0
Max : 100
Recommended : 0

  "min_players": 0,

"max_players"

The maximum number of players that have to be connected for the "Disallowed_weapons" rule to apply.
(ie : if set on 50, the rule will be disabled after the 51st player has entered the game)
Disabled : 0
Max : 100
Recommended : 0

  "max_players": 0,

"weapons"

A list of "Disallowed weapons"

Available weapons list is far too large to be covered here.
You'll find them all here
(This list may/will be outdated with future game versions releases).

    "weapons": {
      "Unknown": "bombing",
      "BOMBING RUN": "bombing",
      "155MM HOWITZER [M114]": "artillery",
      "150MM HOWITZER [sFH 18]": "artillery",
      "122MM HOWITZER [M1938 (M-30)]": "artillery",
      "QF 25-POUNDER [QF 25-Pounder]": "artillery"
    }

"violation_message"

The {weapon} variable will be autopopulated with the weapons you have defined above.

    "violation_message": "You can't play\n{weapon}\n",

"Enforce_cap_fight"

"min_players"

The minimum number of players that have to be connected for the "Enforce_cap_fight" rule to apply.
(ie : if set on 50, the rule will be disabled until the 51st player has entered the game)
Disabled : 0
Max : 100
Recommended : 0

  "min_players": 0,

"max_players"

The maximum number of players that have to be connected for the "Enforce_cap_fight" rule to apply.
(ie : if set on 50, the rule will be disabled after the 51st player has entered the game)
Disabled : 0
Max : 100
Recommended : 0

  "max_players": 0,

"max_caps"

The number of capture points a team will be allowed to attack.

[!NOTE]
As the game server doesn't give any player's positional coordinates on the RCON line,
knowing a player's position for sure is tricky.

We only can know a player is trespassing the actual "max_cap" point by using its offense score,
as he gains 20 offense points for every minute he has been in red zone (attacking).
-> if its team already owns the "max_cap" point, a player isn't allowed to go beyond (earning offense points) and should be punished.

There's a limitation, though : the offense score is updated only once a minute.
We can't do nothing about that : this is a server-side hardcoded timer.
So, depending on the time elapsed since the last score update, a player can enter and do things (even capping the 4th point if he's in the "four squares" around it) for a WHOLE minute before being seen/punished.
-> "Clever" players can team up to capture the 4th point : a second/third one can enter the cap zone at the moment the previous capper(s) have been punished, continuing the (2 minutes) cap process until the point fall.

Recommended : 3 (not beyond the middle point)
Don't set it on 2 : one team will get the (neutral) mid point at start and the other one won't be allowed to attack it.

  "max_caps": 3,

"skip_warning"

Due to the lack of data availability (see note above), we have to punish (kill) a player as soon as we see him being in the red zone, possibly capping the 4th point. Giving him some more "warning" time would allow him to cap the point (2 minutes in the "four squares" if no enemy is present).
(very) Recommended : true

  "skip_warning": true,

"violation_message"

This is a part of the message that will be sent to the player.

    "violation_message": "You can't enter red zone beyond the middle point\n",