Go to file
2022-11-18 20:46:03 +01:00
mapvote.js feat: !vote start mapname output full list 2022-11-18 20:46:03 +01:00
README.MD feat: configurable faction filter 2022-11-18 20:30:14 +01:00

MapVote

The MapVote plugin for squad js based on the original version https://github.com/maskedmonkyman/squad-js-map-vote

Commands

User Commands

  • !vote help - sends possbile commands to a player in the from of a warning
  • !vote choices - sends choices to player in the from of a warning
  • !vote results - sends player the results in a warning

Admin Commands

  • !vote start - Starts a vote with 6 layers, random modes
  • !vote cancel - Cancels current round of voting
  • !vote cancelauto - Cancel scheduled automatic start of vote
  • !vote end - Gently ends the current vote and announces the winner layer
  • !vote restart - Restarts voting with 6 random maps and modes
  • !vote broadcast - Broadcasts current voting results - happens every 7m automatically
Vote by modes
  • !vote start *_raas - Starts a vote with 6 layers, all RAAS
  • !vote start *_aas - Starts a vote with 6 layers, all AAS
  • !vote start *_inv - Starts a vote with 6 layers, all INV
Vote by map
  • !vote start yeh gor lash gor albas - Starts a vote with X maps, random modes
Vote by map + mode, mixed
  • !vote start yeh_raas gor_raas lash_inv gor albas_inv - Starts a vote with X maps, X modes

Options

commandPrefix

Description

The command name to use in chat.

Default
!vote

automaticVoteStart

Description

A map vote will automatically start after a new match if set to true.

Default
true

votingDuration

Description

How long the voting will be active (in minutes). Set to 0 for unlimited time.

Default
0

minPlayersForVote

Description

The number of players needed on the server for a vote to start.

Default
40

voteWaitTimeFromMatchStart

Description

The time in mins from the start of a round to the start of a new map vote.

Default
15

voteBroadcastInterval

Description

The broadcast interval for vote notification in mins.

Default
7

automaticSeedingMode

Description

Instantly change to a seeding layer if server has less than 5 players and set next layer to a seeding layer if server has less than 20 players.

Default
true

numberRecentMapsToExlude

Description

The random layer list will not include the X recent maps

Default
4

gamemodeWhitelist

Description

The random layer list will be generated with only selected gamemodes.

Default
[ "AAS", "RAAS", "INVASION" ]

layerFilteringMode

Description

Select Whitelist mode or Blacklist mode.

Default
"blacklist"

layerLevelWhitelist

Description

The random layer list will include ONLY the whitelisted layers or levels. (acceptable formats: Gorodok/Gorodok_RAAS/Gorodok_AAS_v1).

Default
[]

layerLevelBlacklist

Description

The random layer list will NOT include the blacklisted layers or levels. (acceptable formats: Gorodok/Gorodok_RAAS/Gorodok_AAS_v1).

Default
[]

applyBlacklistToWhitelist

Description

If set to true the blacklisted layers will be filtered out also in whitelist mode.

Default
true

factionsBlacklist

Description

factions to exclude in map vote. ( ex: ['CAF'] )

Default
[]

minRaasEntries

Description

Minimum amount of RAAS layers in the vote list.

Default
2

hideVotesCount

Description

Hides the number of votes a layer received in broadcast message.

Default
false

showRerollOption

Description

vote option to restart the vote with random entries.

Default
false

voteBroadcastMessage

Description

Message that is sent as broadcast to announce a vote.

Default
"✯ MAPVOTE ✯\nVote for the next map by writing in chat the corresponding number!"

voteWinnerBroadcastMessage

Description

Message that is sent as broadcast to announce the winning layer.

Default
"✯ MAPVOTE ✯\nThe winning layer is\n\n"

allowedSameMapEntries

Description

Allowed max NUMBER of times a map could appear in the vote list.

Default
1

logToDiscord

Description

Enables/disables vote logging to Discord.

Default
false

channelID

Description

The ID of the channel to log votes to.

Default
"112233445566778899"

timezone

Description

Timezone relative to UTC time. 0 for UTC, 2 for CEST (UTC+2), -1 (UTC-1)

Default
0

timeFrames

Description

Array of timeframes that allows to override options based on local time. See example configuration

Default
[]
Timeframe format
{
    name: "friendly name", // a friendly name visible in the logs
    start: "12:00", // timeframe start time <hour>:<minutes>
    end: "18:00", // timeframe end time <hour>:<minutes>
    overrides: { // options to override
        automaticVoteStart: false,
        layerLevelBlacklist: [ "Anvil", "Chora" ]
    }
}

Example configuration

{
    "plugin": "MapVote",
    "enabled": true,
    "discordClient": "discord",
    "automaticVoteStart": true,
    "votingDuration": 0,
    "minPlayersForVote": 30,
    "voteWaitTimeFromMatchStart": 10,
    "voteBroadcastInterval": 7,
    "numberRecentMapsToExlude": 4,
    "automaticSeedingMode": true,
    "gamemodeWhitelist": [ "AAS", "RAAS", "Invasion" ],
    "layerLevelBlacklist": [ "BlackCoast_Seed" ],
    "layerLevelWhitelist": [ "Yeho", "Gorodok", "Mutaha", "Narva", "Tallil" ],
    "applyBlacklistToWhitelist": true,
    "factionsBlacklist": [ "CAF", "INS" ],
    "minRaasEntries": 2,
    "hideVotesCount": false,
    "showRerollOption": false,
    "voteBroadcastMessage": "✯ MAPVOTE ✯\nVote for the next map by writing in chat the corresponding number!",
    "voteWinnerBroadcastMessage": "✯ MAPVOTE ✯\nThe winning layer is\n\n",
    "allowedSameMapEntries": 1,
    "logToDiscord": true,
    "channelID": "112233445566778899",
    "timezone": 2,
    "timeFrames": [
        {
            "name": "follow layer rotation list",
            "start": "12:00",
            "end": "18:00",
            "overrides": {
                "automaticVoteStart": false
            }
        },
        {
            "start": "22:00",
            "end": "02:00",
            "overrides": {
                "voteBroadcastMessage": "Late night games? Vote your favourite map!"
            }
        }
    ]
}