Loading...
Loading...
Loading...
Loading...
The plugin is highly configurable via the K4-GOTV.json file. Below is a breakdown of the key configuration sections
Setting
Description
Default Value
DemoDirectory
Directory where demos are stored. (Starting from csgo/)
"discord_demos"
DefaultFileName
Default name format for recorded demos.
"demo"
DeleteEveryDemoFromServerAfterServerStart
Delete all stored demos on server start.
false
LogUploads
Log demo upload events to the console.
true
LogDeletions
Log demo deletion events.
true
DeleteDemoAfterUpload
Remove the demo file after successful upload.
true
DeleteZippedDemoAfterUpload
Remove the ZIP file after successful upload.
true
RegularFileNamingPattern
Naming pattern for standard demos.
"{fileName}_{map}_{date}_{time}"
CropRoundsFileNamingPattern
Naming pattern for cropped round demos.
"{fileName}_{map}_round{round}_{date}_{time}"
MinimumDemoDuration
Minimum demo duration in seconds before being processed.
5.0
Setting
Description
Default Value
Enabled
Enable automatic recording.
false
CropRounds
Start a new demo for each round.
false
RecordWarmup
Record warmup rounds.
true
StopOnIdle
Stop recording if the server is inactive.
false
IdlePlayerCountThreshold
Minimum player count to keep recording.
0
IdleTimeSeconds
Time before stopping the recording due to inactivity.
300
Setting
Description
Default Value
WebhookURL
Discord webhook URL for notifications.
""
WebhookName
Webhook username for messages.
"CSGO Demo Bot"
WebhookAvatar
Webhook avatar URL.
""
MessageText
Default message text in notifications.
"@everyone New CSGO Demo Available!"
EmbedTitle
Title of the embed message.
"New CSGO Demo Available"
WebhookUploadFile
Upload the demo directly to Discord. (Fails above limit exceeding)
true
ServerBoost
Discord Nitro boost level affecting file size limits.
0
Setting
Description
Default Value
Enabled
Enable FTP upload.
false
Host
FTP server address.
""
Port
FTP port.
21
Username
FTP username.
""
Password
FTP password.
""
RemoteDirectory
Destination directory for uploads.
"/"
UseSftp
Use SFTP instead of FTP.
false
Setting
Description
Default Value
Enabled
Enable Mega upload.
false
Email
Mega account email.
""
Password
Mega account password.
""
Setting
Description
Default Value
Enabled
Enable demo request feature. (Using !demo - Automatically enabled crop-rounds and auto-record)
false
PrintAll
Broadcast requests to all players.
true
DeleteUnused
Delete unrequested demos.
true
Setting
Description
Default Value
Enable
Enable database storage of demo records.
false
Host
Database host.
"localhost"
Port
Database port.
3306
Name
Database name.
""
Username
Database username.
""
Password
Database password.
""
SslMode
SSL mode for database connection.
"preferred"
TablePrefix
Prefix for database tables.
""
K4-GOTV is an advanced GOTV handler plugin for Counter-Strike: 2, integrating features like Discord notifications, database storage, and various upload services (FTP, SFTP, Mega).
Automated GOTV recording with configurable options.
Player activity-based recording start/stop.
Demo storage management (deletion, database tracking).
Discord integration for notification and upload.
Support for FTP, SFTP, and Mega for file storage.
Customizable demo naming conventions.
Automatic idle detection and recording stop.
Counter-Strike: 2 server with CounterStrikeSharp installed.
Download the latest version of K4-GOTV.
Place the folders to their places following the structure of the compressed release.
Restart the server or use css_plugins load K4-GOTV
in the console.
Edit the configuration file located at csgo/addons/counterstrikesharp/configs/plugins/K4-GOTV/K4-GOTV.json
.
Placeholders can be used in embed messages and recording file names. They should be used in the format {placeholder}
File Name Placeholders
These placeholders can be used in file naming patterns:
Placeholder
Description
fileName
Represents the base file name of the demo.
map
Represents the name of the server map.
date
Represents the current date in the format "yyyy-MM-dd".
time
Represents the current time in the format "HH-mm-ss".
timestamp
Represents a timestamp formatted as "yyyyMMdd_HHmmss".
round
Represents the total number of rounds played in a game.
playerCount
Represents the total count of players.
Embed Placeholders
These placeholders can be used in embed messages:
Placeholder
Description
webhook_name
Represents the Discord webhook name.
webhook_avatar
Represents the Discord webhook avatar URL.
message_text
Represents the text message for the webhook.
embed_title
Represents the title of the embed message.
map
Represents the name of the server map.
date
Represents the current date in the format "yyyy-MM-dd".
time
Represents the current time in the format "HH:mm:ss".
timedate
Represents the current date and time in the format "yyyy-MM-dd HH:mm:ss".
length
Represents the demo duration, formatted as "mm:ss".
round
Represents the total number of rounds played in a game.
mega_link
Represents whether a file has been uploaded to Mega or not.
ftp_link
Represents whether a file has been uploaded to FTP or not.
requester_name
Represents the names of the requesters, separated by commas.
requester_steamid
Represents the Steam IDs of the requesters, separated by commas.
requester_both
Represents both the names and Steam IDs of the requesters, formatted as "name (steamid)", separated by commas.
requester_count
Represents the total count of requesters.
player_count
Represents the total count of players.
server_name
Represents the server name.
iso_timestamp
Represents the current timestamp in ISO 8601 format.
file_size_warning
Displays a warning if the file exceeds the size limit.
fileSizeInKB
Represents the size of the demo file in KB.
Additionally, there are placeholders for multiple requesters, indexed by their count:
requester_name[i]
- Represents the name of the ith requester.
requester_steamid[i]
- Represents the Steam ID of the ith requester.
requester_both[i]
- Represents the name and Steam ID of the ith requester.