This is the English help file created by Stefan1200. Last updated for JTS3ServerMod Hosting Edition version 6.5.7.
JavaScript needs to be activated in your Browser to display this help file.
IMPORTANT:
If you use the included PHP web interface, you don't need the config files. But you can look into this document to learn more about the chat commands of some functions.
Select file or function to display help:
Main configuration files:
JTS3ServerMod_server.cfg
JTS3ServerMod_InstanceManager.cfg
Open Regular Expression Tester!
Function configuration:
Advertising
AutoMove
AwayMover
BadChannelNameCheck
BadNicknameCheck
ChannelNotify
IdleCheck
InactiveChannelCheck
InactiveClientsCleaner
LastSeen
MuteMover
RecordCheck
ServerGroupNotify
ServerGroupProtection
WelcomeMessage
This is the main configuration file of a bot instance. Every bot instance has an own file. This file must be saved with the encoding ISO-8859-1!
IMPORTANT:
This file is not needed, if the MySQL mode is enabled!
This are the values:

    # Teamspeak 3 server address
    ts3_server_address = ts3.server.net
    # Teamspeak 3 server query port, default is 10011 (raw) and 10022 (ssh)
    ts3_server_query_port = 10011
    # Teamspeak 3 server query admin account name
    ts3_server_query_login = serveradmin
    # Teamspeak 3 server query admin password
    ts3_server_query_password = password
    # Teamspeak 3 server query mode, possible values: raw and ssh
    # raw = The default unencrypted way to connect to the TS3 server.
    # ssh = The communication to the TS3 server will be encrypted. Possible since TS3 server version 3.3.0 and needs to be activated at the TS3 server.
    ts3_server_query_mode = raw
    # Teamspeak 3 virtual server ID or -1 to use ts3_virtualserver_port
    ts3_virtualserver_id = -1
    # Teamspeak 3 virtual server port, only needed if ts3_virtualserver_id is set to -1
    ts3_virtualserver_port = 9987

    # Channel id, the bot will join into it after connecting. If not wanted, use a negative number like -1.
    # Don't set the default channel here, because the bot is already in the default channel after connecting.
    bot_channel_id = -1
    # Activate the slow mode of the bot, 0 = disable, 1 = enable.
    # If slow mode is activated, the bot connects slower to the server
    # and disables some bot features to reduce the amount of needed commands.
    # This feature may allow you to use the bot without whitelist the bot IP address.
    # Slow mode disables the client database list cache and do not allow the bot check interval to be lower than 3 seconds.
    bot_slowmode = 0
    # Check every X seconds, default is 1. Values between 1 and 30 are allowed.
    # If slow mode is activated, 3 is the lowest possible value.
    bot_check_interval = 1
    # A different encoding of the messages config files.
    # Default is UTF-8 which should be good for all EU and US languages.
    # Change this only if you know what you are doing!
    # For English or German language you can also use the encoding ISO-8859-1
    # A list of all valid ones: http://docs.oracle.com/javase/1.5.0/docs/guide/intl/encoding.doc.html
    bot_messages_encoding = UTF-8
    # This enables the client database list cache. This cache is needed for commands like !searchip or !searchdesc. 1 = Enable, 0 = Disable
    bot_clientdblist_cache = 1
    # This enables the global message variables. See readme file for a list of variables. 1 = Enable, 0 = Disable
    # If enabled, you can use all server variables in all messages. If not needed, disable this to save performance.
    bot_global_message_vars = 0
    # Server Query name, this will be displayed as name of the connection.
    bot_server_query_name = TS3 Server
    # Second Server Query name, this will be displayed as name of the connection.
    # This name will be used, if the first name is already in use.
    bot_server_query_name_2 = TS Server
    # Change the date pattern, which will be used to format a date in chat functions and welcome message.
    # To get help how to make such a pattern, look here: http://docs.oracle.com/javase/1.5.0/docs/api/java/text/SimpleDateFormat.html
    bot_date_pattern = yyyy-MM-dd HH:mm:ss
    # Change the timezone of the bot, which will be used for the date of the chat functions and welcome message.
    # If nothing is set here, the default timezone of the operating system will be used.
    # To get a list of valid timezones, look at the TZ column on the following page:
    # https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List
    bot_timezone =
    # Should the bot try to connect forever if the Teamspeak server or the bot is offline? 0 = disable, 1 = enable
    bot_connect_forever = 0
    # Minimum log level, how much details you want to be written to the bot log files? Default is 1.
    # Higher log levels will be also written, as an example: You set log level to 2, level 2, 3 and critical errors will be written to bot log file.
    # 0 = Debug
    # 1 = Information (recommended and default)
    # 2 = Warning (recommended for smaller log files)
    # 3 = Error (experts only)
    bot_log_level = 1
    # A comma separated list (without spaces) of unique user ids, which should be able to use bot admin commands.
    # The unique user ids looks like this: mBbHRXwDAG7R19Rv3PorhMwbZW4=
    bot_admin_list =
    # A comma separated list (without spaces) of server group ids, which should be able to use the following bot admin commands:
    # !channellist, !listchannelgroups, !listinactiveclients, !listinactivechannels, !listservergroups, !msgchannelgroup, !msgservergroup, !pokechannelgroup,
    # !pokeservergroup, !removeservergroups, !removechannelgroups, !searchclient, !searchdesc, !searchip, !setchannelgroup and !setchannelname.
    # All other bot admin commands are not allowed!
    bot_lightadmingroup_list =

    # Check current max clients distance every X seconds! Set to -1 to disable this function. To enable this function, set between 1 and 600 seconds here.
    slotchecker_check_interval = -1
    # Skip X intervals until a request is send to the specified URL. Possible values between 0 and 60.
    slotchecker_skip_action_interval = 1
    # Minimum allowed distance to the current max clients! Lowest possible value is 1.
    slotchecker_min_slotdistance =
    # Maximum allowed distance to the current max clients! Lowest possible value is 1.
    slotchecker_max_slotdistance =
    # Minimum allowed slot count for this virtual server! This function don't set the max clients lower than this value.
    slotchecker_min_slotcount =
    # Maximum allowed slot count for this virtual server! This function don't set the max clients higher than this value.
    slotchecker_max_slotcount =
    # Set http URL here! That URL have to return the new slot count / max clients as number or -1 if nothing should be changed! The website has to return a new line (\n) after the number.
    # You can use the following keywords within the URL, which will be replaced:
    # %address% - TS3 server address used by the bot!
    # %port% - TS3 voice port reported by the TS3 server!
    # %id% - TS3 virtual server id reported by the TS3 server!
    # %maxclients% - Current TS3 virtual server slot count / max clients!
    # %clientcount% - Current TS3 client count on that virtual server!
    slotchecker_url = http://
    # Set confirm http URL here! If changing the max client count was successful, the new value will be send. If not, -1 will be send. Set no URL here to disable confirming new values.
    # You can use the following keywords within the URL, which will be replaced:
    # %address% - TS3 server address used by the bot!
    # %port% - TS3 voice port reported by the TS3 server!
    # %id% - TS3 virtual server id reported by the TS3 server!
    # %newmaxclients% - New max client count or -1 if nothing was changed!
    slotchecker_url_confirm =

    # Set a comma separated list (without spaces) of needed bot functions here.
    # Each function needs the function class (or plugin filename) and the function name, both separated with a colon.
    # All possible function classes are listed below, that class is case sensitive!
    # You can use external functions, they have to be in the plugins directory and you have to use the filename
    # including the jar file extension as function class, as an example: AutoKickTimer.jar:akt
    # That function name you choose is important and has to be unique. It will be used as prefix for the configuration key names and chat commands.
    # Don't use spaces in the function names, only use letters, numbers, minus and underscore!
    # Most functions allow multiple usage, that allows you to set as many Welcome Messages or Idle Check rules, as you want.
    # Don't forget that you have to put all settings of the functions in this file.
    # Hint: Start the bot with the argument -updateconfig after adding bot functions, that writes the configuration for all functions into this file!
    # Whole command: java -jar JTS3ServerMod.jar -updateconfig
    # Notice: This -updateconfig will also delete all lines of removed or renamed functions in this config file!
    #
    # Example: IdleCheck:idle,IdleCheck:idle_guest,MuteMover:mute,WelcomeMessage:welcome,WelcomeMessage:welcome_guest
    # This example gives you the following:
    # - Two IdleCheck with the name idle and idle_guest
    # - One MuteMover with the name mute
    # - Two WelcomeMessage with the name welcome and welcome_guest
    #
    # Function list (multiple use possible):
    # Advertising - Send messages to channel or server chat every X minutes
    # AutoMove - Move connecting clients of a specified server group to a specified channel
    # AwayMover - Move the client as soon as away status is set for longer than X seconds
    # BadChannelNameCheck - Checking for bad channel names, can delete the channel and punish the client
    # BadNicknameCheck - Checking for bad nicknames and can punish the client
    # ChannelNotify - Notify specified server groups about clients joining a specified channel
    # IdleCheck - Move or kick an idle client, can also send an idle warning message
    # InactiveChannelCheck - Delete channels if empty for more than X hours
    # InactiveClientsCleaner - Deletes clients (including permissions) from the TS3 database after X days inactivity (client database list cache must be enabled!)
    # LastSeen - Chat command to check the last online time of a client
    # MuteMover - Move the client as soon as the specified mute status is set for longer than X seconds
    # RecordCheck - Move or kick a recording client (of course only the record function of the Teamspeak client is detected)
    # ServerGroupNotify - Notify specified server groups about clients of specified server groups connecting to the TS3 server
    # ServerGroupProtection - Make sure that only specified clients are members of the specified server groups
    # WelcomeMessage - Sends a message to new connected clients
    bot_functions =
    # Set a comma separated list (without spaces) of needed but disabled bot functions here.
    # Same format as bot_functions!
    # All functions you set here are not activated at bot start, but you can switch on functions using chat commands.
    bot_functions_disabled =

The above example would look like this (without comments, starting with the bot_functions line):

    bot_functions = IdleCheck:idle,IdleCheck:idle_guest,MuteMover:mute,WelcomeMessage:welcome,WelcomeMessage:welcome_guest

    idle_warn_time = -1
    idle_group_time = -1
    idle_move_time = -1
    idle_kick_time = -1
    idle_group_id = -1
    idle_channel_id =
    idle_moveback = no
    idle_channel_list =
    idle_channel_list_mode = ignore
    idle_group_list =
    idle_group_list_mode = ignore
    idle_min_clients = 3
    idle_min_clients_mode = server
    idle_warn_message_mode = chat
    idle_group_message_mode = chat
    idle_move_message_mode = chat
    idle_file = config/server1/idlecheckmessages.cfg

    idle_guest_warn_time = -1
    idle_guest_group_time = -1
    idle_guest_move_time = -1
    idle_guest_kick_time = -1
    idle_guest_group_id = -1
    idle_guest_channel_id =
    idle_guest_moveback = no
    idle_guest_channel_list =
    idle_guest_channel_list_mode = ignore
    idle_guest_group_list =
    idle_guest_group_list_mode = ignore
    idle_guest_min_clients = 3
    idle_guest_min_clients_mode = server
    idle_guest_warn_message_mode = chat
    idle_guest_group_message_mode = chat
    idle_guest_move_message_mode = chat
    idle_guest_file = config/server1/idlecheckmessages.cfg

    mute_moveback = yes
    mute_headphone = no
    mute_microphone = no
    mute_headphone_hardware = no
    mute_microphone_hardware = no
    mute_channel_id =
    mute_delay = 5
    mute_channel_list =
    mute_channel_list_mode = ignore
    mute_group_list =
    mute_group_list_mode = ignore
    mute_message_mode = none
    mute_file = config/server1/mutemessages.cfg

    welcome_group_list =
    welcome_group_list_mode = ignore
    welcome_showonconnectionnumber = -1
    welcome_clientcountry_list =
    welcome_clientcountry_list_mode = ignore
    welcome_message_mode = chat
    welcome_file = config/server1/welcomemessages.cfg

    welcome_guest_group_list =
    welcome_guest_group_list_mode = ignore
    welcome_guest_showonconnectionnumber = -1
    welcome_guest_clientcountry_list =
    welcome_guest_clientcountry_list_mode = ignore
    welcome_guest_message_mode = chat
    welcome_guest_file = config/server1/welcomemessages.cfg

Top - Close help
This is the main configuration file of the bot InstanceManager. If the MySQL mode is disabled, you have to define all bots in this file, which you want to use.
Each bot instance need:
X.instance_enable
X.instance_name
X.instance_config_path
Optional:
X.instance_logfile_path
X.instance_csvloginlog_path
X.instance_debug = 1
For X use a number starting from 1. Make sure that you have not more than 10 missing numbers between the instances. At least one enabled instance is needed or the bot process will stop after starting (only if telnet_run_forever is disabled).
This file must be saved with the ANSI encoding ISO-8859-1!
This are the values:

    # A comma separated list (without spaces) of unique user ids,
    # which should be able to use bot full admin commands on all bot instances.
    # Bot full admin can also see the TS3 server password and is able to use the !exec command.
    # The unique user ids looks like this: mBbHRXwDAG7R19Rv3PorhMwbZW4=
    bot_fulladmin_list =
    # Allow !exec and !execwait commands for bot fulladmins? 1 = Yes, 0 = No
    # This allow you to execute system commands.
    # Only use !execwait for commands which quits within some seconds,
    # because the bot waits for the end of this command to send you the text output of the program.
    # Use !exec for commands with a longer runtime instead,
    # this command don't send you any text output, because the bot don't wait for it.
    bot_command_exec = 0
    # Every time a bot full admin connects to the TS3 server it will be checked if an update for the JTS3ServerMod is available.
    # If an update is available, a chat message will be sent to the bot full admin.
    # 0 = disable, 1 = final versions, 2 = final and test versions
    bot_update_check = 0
    # The own personal licence key.
    # Read the instructions, to know how to get one, at the download page of the JTS3ServerMod Hosting Edition.
    bot_licence_key =
    # Add a small delay in milliseconds to the bot starting process.
    # Only change this value if you have problems starting all bots at once, like hanging bot threads.
    delay_bot_start = 100

    # Enable the multi IP mode. 1 = Enable, 0 = Disable
    # If slow mode is activated, this feature split bot connections to the Teamspeak 3 servers.
    # Events (Chat and some functions) and the Client Database Cache gets an own connection which should solve the IP ban problem.
    multiipmode_enable = 0
    # Local IP Address of the main connection, make sure that this is not the same as for chat and cache!
    multiipmode_ip_main = 123.123.123.123
    # Local IP Address of the chat connection, make sure that this is not the same as for main and cache!
    multiipmode_ip_chat = 124.124.124.124
    # Local IP Address of the cache connection, make sure that this is not the same as for chat and main!
    multiipmode_ip_cache = 125.125.125.125
    # First local port
    multiipmode_portrange_min = 50000
    # Last local port
    # Make sure, that you have at least 3 ports for every bot, which use the slow mode!
    multiipmode_portrange_max = 51999

    # Enable the Query Interface of the bot. 1 = Enable, 0 = Disable
    # You are able to start, stop or reload a virtual bot instance using this Query Interface.
    telnet_enable = 0
    # Choose a port for the Query Interface. Set -1 to use the default port 5873.
    telnet_port = -1
    # Choose a password for the Query Interface.
    # If this password is shorter than 6 characters, the Query Interface will be disabled!
    telnet_password =
    # Choose a network interface for the Query Interface. Only set a single ip address of a local network interface here.
    # Set nothing here to bound the Query Interface to all network interfaces (default).
    # Example: Set to 127.0.0.1 (IPv4) or ::1 (IPv6) to allow connections only from localhost.
    telnet_bindTo =
    # A comma separated list (without spaces) of IP addresses, which are allowed to connect to the Query Interface.
    # Leave empty, if every IP address is allowed to connect.
    telnet_whitelist = 127.0.0.1
    # Log query connection attempts to logfile? 1 = Enable, 0 = Disable
    telnet_connection_log = 1
    # Enable this to prevent that the JTS3ServerMod process quits if no bot instances are running. 1 = Enable, 0 = Disable
    # You can still quit the process with !botquit in TS3 client chat or with botquit on the Query Interface.
    telnet_run_forever = 0

    # Use a MySQL database to save bot instances and configurations. 1 = Enable, 0 = Disable
    # There should be a structure sql file in the documents directory.
    # Import this into your MySQL database to create the tables (the included web interface do this already for you).
    # But you must fill this tables by yourself, the bot just reads the informations out there.
    mysql_enable = 0
    mysql_host = 127.0.0.1
    mysql_port = 3306
    mysql_user =
    mysql_password =
    mysql_database =

    # Optional MySQL settings, more information on https://dev.mysql.com/doc/connector-j/en/connector-j-reference-configuration-properties.html
    # Possible values: -1 = default, 0 = disable, 1 = enable
    mysql_verifyServerCertificate = -1
    mysql_useSSL = -1
    mysql_requireSSL = -1
    mysql_useCompression = -1

    # Normal log entries older than X days will be deleted from MySQL jts3servermod_log table. 0 = disable auto delete!
    mysql_log_delete = 0
    # Connection log entries older than X days will be deleted from MySQL jts3servermod_log table. 0 = disable auto delete!
    mysql_connection_log_delete = 0

    # Passphrase for the encryption of TS3 server query passwords.
    # This key has to be the same as in the PHP PWCrypt class.
    # Leave it empty to disable encrypting and decrypting query passwords.
    # If the passphrase will be changed after some passwords was encrypted,
    # it is not possible to decrypt the encrypted passwords again.
    crypt_key =

    ###########################################################################
    ### If you use MySQL, you do not have to edit anything below this line! ###
    ###########################################################################

    # Enable bot instance, 1 = yes, 0 = no
    # If 0, you can start the virtual bot instance later by chat command from another running virtual bot instance.
    1.instance_enable = 1
    # The name is needed to start or stop this virtual bot instance by chat commands. This name has to be unique!
    # Don't use spaces in the bot name, only use letters, numbers, minus and underscore!
    1.instance_name = FirstBot
    # Path to config file for this virtual bot instance.
    1.instance_config_path = config/server1/JTS3ServerMod_server.cfg
    # Path to log file for this virtual bot instance. Leave empty to disable file logging.
    1.instance_logfile_path = JTS3ServerMod_server1.log
    # Path to connection log file for this virtual bot instance. Will be saved in csv format. Leave empty to disable file logging.
    # This function creates a CSV file, which logs when which client (including IP address) connects to the TS3 server.
    1.instance_csvloginlog_path = JTS3ServerMod_server1_login.csv

    # Enable bot instance, 1 = yes, 0 = no
    # If 0, you can start the virtual bot instance later by chat command from another running virtual bot instance.
    2.instance_enable = 0
    # The name is needed to start or stop this virtual bot instance by chat commands. This name has to be unique!
    # Don't use spaces in the bot name, only use letters, numbers, minus and underscore!
    2.instance_name = SecondBot
    # Path to config file for this virtual bot instance.
    2.instance_config_path = config/server2/JTS3ServerMod_server.cfg
    # Path to log file for this virtual bot instance. Leave empty to disable file logging.
    2.instance_logfile_path = JTS3ServerMod_server2.log
    # Path to connection log file for this virtual bot instance. Will be saved in csv format. Leave empty to disable file logging.
    # This function creates a CSV file, which logs when which client (including IP address) connects to the TS3 server.
    2.instance_csvloginlog_path = JTS3ServerMod_server2_login.csv

Top - Close help
Description:
Send messages to channel or server chat every X minutes.
Configuration values for the main bot configuration file, by default this is named JTS3ServerMod_server.cfg:
IMPORTANT:
Replace FUNCTIONNAME with your chosen function name! You set the function name in the main bot configuration at the config key bot_functions! You can use this function multiple times! Make sure that you use different function names. And don't forget that you also need the following configuration for each function name of this function class in the main bot configuration file.

    # Is the target of the advertising messages a channel or a server? Possible values (just write one of the both words!): channel or server
    FUNCTIONNAME_mode = server
    # If a channel is the target, set channel id to write advertising message into it
    FUNCTIONNAME_channel_id =
    # Advertise every X minutes
    FUNCTIONNAME_repeat_time = 30
    # Path to file which contains the advertising messages
    FUNCTIONNAME_file = config/server1/advertising.cfg

This function needs an additional config file, by default this is named advertising.cfg. Content must be like the following:

    # JTS3ServerMod Config File
    # Each line which not start with # is a new advertising message.
    # The bot write this messages in the order from top to bottom and start from top again.
    # Typical BBCode like in Teamspeak 3 Client possible. You can use \n for a new line.
    Visit our [url=http://www.homepage.com]Homepage[/url].

Top - Close help
Description:
Checking new created or renamed channels for bad channel names, can delete or rename the channel and punish the client.
List of chat commands:
IMPORTANT:
Replace FUNCTIONNAME with your chosen function name! You set the function name in the main bot configuration at the config key bot_functions!

!FUNCTIONNAME check | Check the current channel list, if there is any bad channel name currently used.
!FUNCTIONNAME findrule <name> | Check if the given name will be found by a bad name rule of this function and return the matching rules.

Configuration values for the main bot configuration file, by default this is named JTS3ServerMod_server.cfg:
IMPORTANT:
Replace FUNCTIONNAME with your chosen function name! You set the function name in the main bot configuration at the config key bot_functions! You can use this function multiple times! Make sure that you use different function names. And don't forget that you also need the following configuration for each function name of this function class in the main bot configuration file.

    # Instantly kick client that creates a channel with a bad name? Set yes or no here!
    FUNCTIONNAME_kick = no
    # Instantly delete a channel with a bad name? Set yes, onlynew or no here!
    # onlynew = Try to rename channel back first. Only if that fail (maybe channel is quite new and the old name is unknown) the channel will be deleted!
    # no = Try to rename channel back, but the channel will not be deleted!
    FUNCTIONNAME_delete = yes
    # A comma separated list (without spaces) of channel ids.
    # This channels will be ignored!
    FUNCTIONNAME_channel_list =
    # Add complain entry to the user? Set yes or no here!
    FUNCTIONNAME_add_complain = no
    # A comma separated list (without spaces) of server group ids.
    # Depends on the given mode, this server groups can be ignored or only this server groups will be checked!
    # If no server groups should be ignored, set no server groups here and select the group list mode ignore!
    FUNCTIONNAME_group_list =
    # Select one of the two modes for the server group list.
    # ignore = The selected server groups will be ignored and can create channels with bad channel names.
    # only = Only the selected server groups will be checked.
    FUNCTIONNAME_group_list_mode = ignore
    # Select the message mode, how the client should get the message.
    # poke, chat or none are valid values!
    # If client kick is activated, the message will be always used as kick message!
    FUNCTIONNAME_message_mode = poke
    # Path to file which contains the Bad Channel Name Check rules and the message.
    FUNCTIONNAME_file = config/server1/badchannelname.cfg

This function needs an additional config file, by default this is named badchannelname.cfg. Content must be like the following:

    # JTS3ServerMod Config File
    # Set message for using a bad channel name.
    # You can use the following keywords, which will be replaced:
    # %CHANNEL_NAME% - Bad Channel Name
    # You can use \n for a new line and typical BBCode like in Teamspeak 3 Client.
    # Use the character sequence §+§ to split a long message into multiple messages.
    The channel name %CHANNEL_NAME% is not allowed!

    # Set bad channel name rules here. One rule per line. Use regular expressions for the rules.
    # This rules will be used case-insensitive.
    # The following link give you some informations about regular expressions in java:
    # http://docs.oracle.com/javase/1.5.0/docs/api/java/util/regex/Pattern.html
    # Important: If you are not sure, test your regular expressions on the following page:
    # http://www.rubular.com / Open Regular Expression Tester!
    # Or the bot may delete all channels, if you do something wrong!

    # nigger and some variations
    .*n[i!1](g|gg)er.*
    # hitler and some variations
    .*h[i!1]tler.*
    # nazi and some variations
    .*n[a@]z[i!1].*

Top - Close help
Description:
Checking for bad nicknames and can punish the client.
List of chat commands:
IMPORTANT:
Replace FUNCTIONNAME with your chosen function name! You set the function name in the main bot configuration at the config key bot_functions!

!FUNCTIONNAME findrule <name> | Check if the given name will be found by a bad name rule of this function and return the matching rules.

Configuration values for the main bot configuration file, by default this is named JTS3ServerMod_server.cfg:
IMPORTANT:
Replace FUNCTIONNAME with your chosen function name! You set the function name in the main bot configuration at the config key bot_functions! You can use this function multiple times! Make sure that you use different function names. And don't forget that you also need the following configuration for each function name of this function class in the main bot configuration file.

    # Kick client with a bad nickname? Set yes or no here!
    FUNCTIONNAME_kick = yes
    # Add complain entry to the user? Set yes or no here!
    FUNCTIONNAME_add_complain = no
    # A comma separated list (without spaces) of server group ids.
    # Depends on the given mode, this server groups can be ignored or only this server groups will be checked!
    # If no server groups should be ignored, set no server groups here and select the group list mode ignore!
    FUNCTIONNAME_group_list =
    # Select one of the two modes for the server group list.
    # ignore = The selected server groups will be ignored and can have bad nicknames.
    # only = Only the selected server groups will be checked.
    FUNCTIONNAME_group_list_mode = ignore
    # Select the message mode, how the client should get the message.
    # poke or chat are valid values!
    # If client kick is activated, the message will be always used as kick message!
    FUNCTIONNAME_message_mode = poke
    # Path to file which contains the bad nickname message and check rules.
    FUNCTIONNAME_file = config/server1/badnickname.cfg

This function needs an additional config file, by default this is named badnickname.cfg. Content must be like the following:

    # JTS3ServerMod Config File
    # Set message for using a bad nickname.
    # You can use the following keywords, which will be replaced:
    # %CLIENT_NAME% - Client Name
    # You can use \n for a new line and typical BBCode like in Teamspeak 3 Client.
    This nickname is not allowed on this server!

    # Set bad nickname rules here. One rule per line. Use regular expressions for the rules.
    # This rules will be used case-insensitive.
    # The following link give you some informations about regular expressions in java:
    # http://docs.oracle.com/javase/1.5.0/docs/api/java/util/regex/Pattern.html
    # Important: If you are not sure, test your regular expressions on the following page:
    # http://www.rubular.com / Open Regular Expression Tester!
    # Or the bot may kick all people, if you do something wrong!

    # nigger and some variations
    .*n[i!1](g|gg)er.*
    # hitler and some variations
    .*h[i!1]tler.*
    # nazi and some variations
    .*n[a@]z[i!1].*

Top - Close help
Description:
Move or kick an idle client, can also send an idle warning message or mark the client as away.
Configuration values for the main bot configuration file, by default this is named JTS3ServerMod_server.cfg:
IMPORTANT:
Replace FUNCTIONNAME with your chosen function name! You set the function name in the main bot configuration at the config key bot_functions! You can use this function multiple times! Make sure that you use different function names. And don't forget that you also need the following configuration for each function name of this function class in the main bot configuration file.

    # Set the idle warn time in minutes or set -1 to disable this feature.
    FUNCTIONNAME_warn_time = -1
    # Set the idle group time in minutes or set -1 to disable this feature.
    # Clients will be added to the specified server group after being idle for this time!
    FUNCTIONNAME_group_time = -1
    # Set the idle move time in minutes or set -1 to disable this feature.
    # Clients will be moved to the specified channel after being idle for this time!
    FUNCTIONNAME_move_time = -1
    # Set the idle kick time in minutes or set -1 to disable this feature.
    # Clients will be kicked from the server after being idle for this time!
    FUNCTIONNAME_kick_time = -1
    # If the clients should be put into a temporary server group, set the server group id here.
    # You should use a server group, which adds the server group name to the client name, so everyone can quickly see, that someone is away.
    # Notice: That server group only need the following permissions (first three are set by default):
    # i_group_needed_modify_power, i_group_needed_member_add_power, i_group_needed_member_remove_power and i_group_show_name_in_tree
    # Important: Make sure, that the specified server group don't has set the permission b_group_is_permanent!
    # You can also set -6 (sg name on the left side) or -9 (sg name on the right side) to create a new server group with the name AFK.
    # This will update the bot configuration and the bot needs the permission b_virtualserver_servergroup_create one time!
    FUNCTIONNAME_group_id = -1
    # If the clients should be moved, set channel id to move idle clients into it.
    FUNCTIONNAME_channel_id =
    # If the clients got moved, move client back if not idle anymore? Set yes or no here!
    FUNCTIONNAME_moveback = no
    # A comma separated list (without spaces) of channel ids.
    # Depends on the given mode, this channels can be ignored or only this channels will be checked!
    # If no channels should be ignored, set no channels here and select the channel list mode ignore!
    FUNCTIONNAME_channel_list =
    # Select one of the two modes for the channel list.
    # ignore = The selected channels will be ignored.
    # only = Only the selected channels will be checked.
    FUNCTIONNAME_channel_list_mode = ignore
    # A comma separated list (without spaces) of server group ids.
    # Depends on the given mode, this server groups can be ignored or only this server groups will be checked!
    # If no server groups should be ignored, set no server groups here and select the group list mode ignore!
    FUNCTIONNAME_group_list =
    # Select one of the two modes for the server group list.
    # ignore = The selected server groups will be ignored.
    # only = Only the selected server groups will be checked.
    FUNCTIONNAME_group_list_mode = ignore
    # A minimum client count to activate the idle check (Query clients are not counted).
    # If less clients are in the channel or on the server, idle check does nothing.
    FUNCTIONNAME_min_clients = 3
    # Select if the minimum client count is needed in the channel or on the server.
    # channel or server are valid values!
    FUNCTIONNAME_min_clients_mode = server
    # Select the message mode, how the client should get the warning message.
    # poke or chat are valid values!
    FUNCTIONNAME_warn_message_mode = chat
    # If the clients should be put into the specified server group, select the message mode, how the client should get the message.
    # poke, chat or none are valid values!
    FUNCTIONNAME_group_message_mode = chat
    # If the clients should be moved to the specified channel, select the message mode, how the client should get the message.
    # poke, chat or none are valid values!
    FUNCTIONNAME_move_message_mode = chat
    # Path to file which contains the idle messages
    FUNCTIONNAME_file = %apphome%config/server1/idlecheckmessages.cfg

This function needs an additional config file, by default this is named idlecheckmessages.cfg. Content must be like the following:

    # JTS3ServerMod Config File
    # Idle warning message, the client get this message as chat or poke message.
    # You can use the following keywords, which will be replaced:
    # %IDLE_WARN_TIME% - Replaced with idle warn time
    # %IDLE_GROUP_TIME% - Replaced with idle group time
    # %IDLE_MOVE_TIME% - Replaced with idle move time
    # %IDLE_KICK_TIME% - Replaced with idle kick time
    # %IDLE_CHANNEL_NAME% - If clients should be moved, this will be replaced with the channel name of the target idle channel
    # Typical BBCode like in Teamspeak 3 Client possible. You can use \n for a new line.
    # Use the character sequence §+§ to split a long message into multiple messages.
    You are now idle since %IDLE_WARN_TIME% minutes. If you are idle for %IDLE_MOVE_TIME% minutes, you will be moved to the channel "%IDLE_CHANNEL_NAME%"! After being idle for %IDLE_KICK_TIME% minutes, you will be kicked from the server!

    # Idle group message, the client get this message as chat or poke message.
    # You can use the following keywords, which will be replaced:
    # %IDLE_WARN_TIME% - Replaced with idle warn time
    # %IDLE_GROUP_TIME% - Replaced with idle group time
    # %IDLE_MOVE_TIME% - Replaced with idle move time
    # %IDLE_KICK_TIME% - Replaced with idle kick time
    # %IDLE_CHANNEL_NAME% - If clients should be moved, this will be replaced with the channel name of the target idle channel
    # Typical BBCode like in Teamspeak 3 Client possible. You can use \n for a new line.
    # Use the character sequence §+§ to split a long message into multiple messages.
    You are now idle for more than %IDLE_GROUP_TIME% minutes, you got marked as away from keyboard!

    # Idle move message, the client get this message as chat or poke message.
    # You can use the following keywords, which will be replaced:
    # %IDLE_WARN_TIME% - Replaced with idle warn time
    # %IDLE_GROUP_TIME% - Replaced with idle group time
    # %IDLE_MOVE_TIME% - Replaced with idle move time
    # %IDLE_KICK_TIME% - Replaced with idle kick time
    # %IDLE_CHANNEL_NAME% - If clients should be moved, this will be replaced with the channel name of the target idle channel
    # Typical BBCode like in Teamspeak 3 Client possible. You can use \n for a new line.
    # Use the character sequence §+§ to split a long message into multiple messages.
    You are now idle for more than %IDLE_MOVE_TIME% minutes, you got moved to the channel "%IDLE_CHANNEL_NAME%"!

    # Idle kick message, the client get this message as kick reason.
    # You can use the following keywords, which will be replaced:
    # %IDLE_KICK_TIME% - Replaced with idle kick time
    You got kicked because of being idle for longer than %IDLE_KICK_TIME% minutes.

Top - Close help
Description:
Move or kick a recording client (of course only the record function of the Teamspeak client is detected).
Configuration values for the main bot configuration file, by default this is named JTS3ServerMod_server.cfg:
IMPORTANT:
Replace FUNCTIONNAME with your chosen function name! You set the function name in the main bot configuration at the config key bot_functions! You can use this function multiple times! Make sure that you use different function names. And don't forget that you also need the following configuration for each function name of this function class in the main bot configuration file.

    # Select the action if a client starts recording, possible values: kick and move
    FUNCTIONNAME_action = kick
    # If clients should be moved, set channel id to move recording clients into it
    FUNCTIONNAME_channel_id =
    # A comma separated list (without spaces) of channel ids.
    # Depends on the given mode, this channels can be ignored or only this channels will be checked!
    # If no channels should be ignored, set no channels here and select the channel list mode ignore!
    FUNCTIONNAME_channel_list =
    # Select one of the two modes for the channel list.
    # ignore = The selected channels will be ignored.
    # only = Only the selected channels will be checked.
    FUNCTIONNAME_channel_list_mode = ignore
    # A comma separated list (without spaces) of server group ids.
    # Depends on the given mode, this server groups can be ignored or only this server groups will be checked!
    # If no server groups should be ignored, set no server groups here and select the group list mode ignore!
    FUNCTIONNAME_group_list =
    # Select one of the two modes for the server group list.
    # ignore = The selected server groups will be ignored and are allowed to record.
    # only = Only the selected server groups will be checked and punished, if they start recording.
    FUNCTIONNAME_group_list_mode = ignore
    # A comma separated list (without spaces) of channel group ids.
    # Depends on the given mode, this channel groups can be ignored or only this channel groups will be checked!
    # If no channel groups should be ignored, set no channel groups here and select the group list mode ignore!
    FUNCTIONNAME_channelgroup_list =
    # Select one of the two modes for the channel group list.
    # ignore = The selected channel groups will be ignored and are allowed to record.
    # only = Only the selected channel groups will be checked and punished, if they start recording.
    FUNCTIONNAME_channelgroup_list_mode = ignore
    # Add complain entry to the user? Set yes or no here!
    FUNCTIONNAME_add_complain = no
    # If clients should be moved, select the message mode, how the client should get the message.
    # poke, chat or none are valid values!
    FUNCTIONNAME_message_mode = poke
    # Path to file which contains the record message
    FUNCTIONNAME_file = config/server1/recordmessages.cfg

This function needs an additional config file, by default this is named recordmessages.cfg. Content must be like the following:

    # JTS3ServerMod Config File
    # Set a record message. On both modes the client should see the message.
    # You can use the following keywords, which will be replaced:
    # %RECORD_CHANNEL_NAME% - After moving client this will be replaced with the channel name
    # Typical BBCode like in Teamspeak 3 Client possible. You can use \n for a new line.
    # Use the character sequence §+§ to split a long message into multiple messages.
    Do not record here!

Top - Close help
Description:
Make sure that only specified clients are members of the specified server groups.
List of chat commands:
IMPORTANT:
Replace FUNCTIONNAME with your chosen function name! You set the function name in the main bot configuration at the config key bot_functions!

!FUNCTIONNAME add <server group id> <client unique id> [comment] | Add a client to the allowed client list. The server group id and client unique id is required, the comment is optional.
!FUNCTIONNAME remove <server group id> <client unique id> | Remove a client from the allowed client list. The server group id and client unique id is required.

Configuration values for the main bot configuration file, by default this is named JTS3ServerMod_server.cfg:
IMPORTANT:
Replace FUNCTIONNAME with your chosen function name! You set the function name in the main bot configuration at the config key bot_functions! You can use this function multiple times! Make sure that you use different function names. And don't forget that you also need the following configuration for each function name of this function class in the main bot configuration file.

    # A comma separated list (without spaces) of server group ids, which should be protected.
    FUNCTIONNAME_groups =
    # Enable this to kick every client which using a protected server group and are not on the list of the bot, set yes or no here!
    FUNCTIONNAME_kick = yes
    # Add complaint entry to the user, set yes or no here!
    # This would only add a complaint, if the bot has to remove a server group.
    FUNCTIONNAME_add_complain = no
    # If a client is listed in the servergroupprotection_file and miss a server group, they get added to the server group.
    # This only works for normal server groups (clients do not get added to groups like Admin Server Query)! Set yes or no here!
    FUNCTIONNAME_add_missing_groups = yes
    # A comma separated list (without spaces) of server group ids, which are also allowed to use the add and remove chat commands.
    # Bot admins can always use this commands!
    FUNCTIONNAME_chatcmd_group_list =
    # Select the message mode, how the client should get the message (useless if kick is enabled).
    # poke, chat or none are valid values!
    FUNCTIONNAME_message_mode = poke
    # Path to file which contains the Server Group Protection client list and kick message.
    FUNCTIONNAME_file = config/server1/servergroupprotection.cfg

This function needs an additional config file, by default this is named servergroupprotection.cfg. Content must be like the following:

    # JTS3ServerMod Config File
    # The first line is the kick or chat message for the server group protection.
    # You can use the following keywords, which will be replaced:
    # %SERVER_GROUP_ID% - Replaced with the server group id.
    # %SERVER_GROUP_NAME% - Replaced with the server group name.
    # Typical BBCode like in Teamspeak 3 Client possible. You can use \n for a new line.
    # Use the character sequence §+§ to split a long message into multiple messages.
    The server group [b]%SERVER_GROUP_NAME%[/b] is protected!

    # This is the list of allowed clients in the protected server groups.
    # One line per client starting with the server group id, followed by a comma,
    # and ends with the unique id of the client.
    # Comments separated with a space behind the unique id are allowed.
    # If a client is member of two protected groups, make two lines with the
    # same unique id, but different server group id.
    # Notice: If no clients are set for one server group, a list
    # with the current members of the server group will be requested from the TS3 server
    # and written into this file automatically!

Top - Close help
Description:
Sends a message to new connected clients.
List of chat commands:
IMPORTANT:
Replace FUNCTIONNAME with your chosen function name! You set the function name in the main bot configuration at the config key bot_functions!

!FUNCTIONNAME test | Sends back the current welcome message.
!FUNCTIONNAME vars | Sends back a list of possible message variables including the values of the own client.

Configuration values for the main bot configuration file, by default this is named JTS3ServerMod_server.cfg:
IMPORTANT:
Replace FUNCTIONNAME with your chosen function name! You set the function name in the main bot configuration at the config key bot_functions! You can use this function multiple times! Make sure that you use different function names. And don't forget that you also need the following configuration for each function name of this function class in the main bot configuration file.

    # A comma separated list (without spaces) of server group ids.
    # Depends on the given mode, this server groups can be ignored or only this server groups get this welcome message!
    # If no server groups should be ignored, set no server groups here and select the group list mode ignore!
    FUNCTIONNAME_group_list =
    # Select one of the two modes for the server group list.
    # ignore = The selected server groups will be ignored and don't get this welcome message.
    # only = Only the selected server groups get this welcome message.
    FUNCTIONNAME_group_list_mode = ignore
    # A comma separated list (without spaces) of the total connection count (it's the same value as %CLIENT_TOTALCONNECTIONS% at the welcome message),
    # when this message should be send to the client. Set this to -1 to show it every time.
    # Ranges like 1-100, -20 (means 20 or less) or 100- (means 100 or more) are also possible.
    FUNCTIONNAME_showonconnectionnumber = -1
    # A comma separated list (without spaces) of platform names (it's the same value as %CLIENT_PLATFORM% at the welcome message).
    # Only selected platforms get the welcome message or leave this empty to send the welcome message to all platforms.
    # Possible platforms: Windows, Mac, Linux, Android, iOS
    FUNCTIONNAME_platform_list =
    # A comma separated list (without spaces) of client countries (it's the same value as %CLIENT_COUNTRY% at the welcome message, an ISO 3166-1 ALPHA-2 country code,
    # like DE for Germany, US for USA and FR for France). Use ?? for clients with an unknown country code (e.g. LAN oder localhost connection to the TS3 server).
    # Depends on the given mode, this client countries can be ignored or only this client countries get this welcome message!
    # If all client countries should get this welcome message, set no client countries here and select the client country list mode ignore!
    # Keep in mind, that the country detection of the TS3 server is not always correct and should only be used with the newest version of the TS3 server!
    FUNCTIONNAME_clientcountry_list =
    # Select one of the two modes for the client country list.
    # ignore = The selected client countries will be ignored and don't get this welcome message.
    # only = Only the selected client countries get this welcome message.
    FUNCTIONNAME_clientcountry_list_mode = ignore
    # Select the message mode, how the client should get the message.
    # poke or chat are valid values!
    FUNCTIONNAME_message_mode = chat
    # Path to file which contains the welcome message.
    FUNCTIONNAME_file = config/server1/welcomemessages.cfg

This function needs an additional config file, by default this is named welcomemessages.cfg. Content must be like the following:

    # JTS3ServerMod Config File
    # Set welcome message. You can use \n for a new line and typical BBCode like in Teamspeak 3 Client.
    # Use the character sequence §+§ to split a long message into multiple messages.
    # You can use the following keywords, which will be replaced:
    # %CLIENT_ID% - Current client ID on the server
    # %CLIENT_DATABASE_ID% - Client database ID
    # %CLIENT_UNIQUE_ID% - Unique client ID
    # %CLIENT_COUNTRY% - Short name of the client country, detected by the TS3 server
    # %CLIENT_NICKNAME% - Nickname of the client
    # %CLIENT_SERVERGROUPS% - Client Server Groups
    # %CLIENT_VERSION% - Client version
    # %CLIENT_PLATFORM% - Client platform (Windows, Linux, ...)
    # %CLIENT_IP% - Client IP address, bot needs permission b_client_remoteaddress_view for this!
    # %CLIENT_CREATED% - Date and time of the first connection of the client
    # %CLIENT_TOTALCONNECTIONS% - Total connection count of the client
    # %CLIENT_MONTH_BYTES_UPLOADED% - Uploaded data in current month (filetransfer and avatar)
    # %CLIENT_MONTH_BYTES_DOWNLOADED% - Downloaded data in current month (filetransfer and avatar)
    # %CLIENT_TOTAL_BYTES_UPLOADED% - Uploaded data all times (filetransfer and avatar)
    # %CLIENT_TOTAL_BYTES_DOWNLOADED% - Downloaded data all times (filetransfer and avatar)
    Hello %CLIENT_NICKNAME%! Your first visit was at %CLIENT_CREATED%. This is your visit number %CLIENT_TOTALCONNECTIONS%.

Top - Close help
Description:
Move the client as soon as away status is set for longer than X seconds.
Configuration values for the main bot configuration file, by default this is named JTS3ServerMod_server.cfg:
IMPORTANT:
Replace FUNCTIONNAME with your chosen function name! You set the function name in the main bot configuration at the config key bot_functions! You can use this function multiple times! Make sure that you use different function names. And don't forget that you also need the following configuration for each function name of this function class in the main bot configuration file.

    # Move client back if not away anymore? Set yes or no here!
    FUNCTIONNAME_moveback = yes
    # Channel id to move away clients into it
    FUNCTIONNAME_channel_id =
    # Idle time in seconds after the client with away status will be moved to the channel.
    # Has between 0 and 10000 seconds!
    FUNCTIONNAME_delay = 5
    # A comma separated list (without spaces) of channel ids.
    # Depends on the given mode, this channels can be ignored or only this channels will be checked!
    # If no channels should be ignored, set no channels here and select the channel list mode ignore!
    FUNCTIONNAME_channel_list =
    # Select one of the two modes for the channel list.
    # ignore = The selected channels will be ignored.
    # only = Only the selected channels will be checked.
    FUNCTIONNAME_channel_list_mode = ignore
    # A comma separated list (without spaces) of server group ids.
    # Depends on the given mode, this server groups can be ignored or only this server groups will be checked!
    # If no server groups should be ignored, set no server groups here and select the group list mode ignore!
    FUNCTIONNAME_group_list =
    # Select one of the two modes for the server group list.
    # ignore = The selected server groups will be ignored.
    # only = Only the selected server groups will be checked.
    FUNCTIONNAME_group_list_mode = ignore
    # Select the message mode, how the client should get the message.
    # poke, chat or none are valid values!
    FUNCTIONNAME_message_mode = none
    # Path to file which contains the away mover message
    FUNCTIONNAME_file = config/server1/awaymessages.cfg

This function needs an additional config file, by default this is named awaymessages.cfg. Content must be like the following:

    # JTS3ServerMod Config File
    # Away Mover message, the client get this message as chat message.
    # You can use the following keywords, which will be replaced:
    # %AWAY_CHANNEL_NAME% - This will be replaced with the name of the specified channel
    # Typical BBCode like in Teamspeak 3 Client possible. You can use \n for a new line.
    # Use the character sequence §+§ to split a long message into multiple messages.
    You were moved to channel "%AWAY_CHANNEL_NAME%" because your client status is away. You will be moved back if your client status is not away anymore.

Top - Close help
Description:
Move the client as soon as the specified mute status is set for longer than X seconds.
Configuration values for the main bot configuration file, by default this is named JTS3ServerMod_server.cfg:
IMPORTANT:
Replace FUNCTIONNAME with your chosen function name! You set the function name in the main bot configuration at the config key bot_functions! You can use this function multiple times! Make sure that you use different function names. And don't forget that you also need the following configuration for each function name of this function class in the main bot configuration file.

    # Move client back if not muted anymore? Set yes or no here!
    FUNCTIONNAME_moveback = yes
    # Enable move, if the headphone was muted using the Teamspeak Client, yes or no
    FUNCTIONNAME_headphone = no
    # Enable move, if the microphone was muted using the Teamspeak Client, yes or no
    FUNCTIONNAME_microphone = no
    # Enable move, if the sound output hardware (for speakers/headphone) is missing or a disabled hardware is selected in the client settings, yes or no
    FUNCTIONNAME_headphone_hardware = no
    # Enable move, if the sound input hardware (for a microphone) is missing or a disabled hardware is selected in the client settings, yes or no
    # This also happen, if someone is speaking on another Teamspeak server.
    FUNCTIONNAME_microphone_hardware = no
    # Move the client if the client has all selected conditions or at least one? Set all or one here!
    FUNCTIONNAME_condition_mode = one
    # Channel id to move muted clients into it
    FUNCTIONNAME_channel_id =
    # Idle time in seconds after the client with a specified mute status will be moved to the channel.
    # Has between 0 and 10000 seconds!
    FUNCTIONNAME_delay = 5
    # A comma separated list (without spaces) of channel ids.
    # Depends on the given mode, this channels can be ignored or only this channels will be checked!
    # If no channels should be ignored, set no channels here and select the channel list mode ignore!
    FUNCTIONNAME_channel_list =
    # Select one of the two modes for the channel list.
    # ignore = The selected channels will be ignored.
    # only = Only the selected channels will be checked.
    FUNCTIONNAME_channel_list_mode = ignore
    # A comma separated list (without spaces) of server group ids.
    # Depends on the given mode, this server groups can be ignored or only this server groups will be checked!
    # If no server groups should be ignored, set no server groups here and select the group list mode ignore!
    FUNCTIONNAME_group_list =
    # Select one of the two modes for the server group list.
    # ignore = The selected server groups will be ignored.
    # only = Only the selected server groups will be checked.
    FUNCTIONNAME_group_list_mode = ignore
    # Select the message mode, how the client should get the message.
    # poke, chat or none are valid values!
    FUNCTIONNAME_message_mode = none
    # Path to file which contains the mute mover message
    FUNCTIONNAME_file = config/server1/mutemessages.cfg

This function needs an additional config file, by default this is named mutemessages.cfg. Content must be like the following:

    # JTS3ServerMod Config File
    # Mute Mover message, the client get this message as chat message.
    # You can use the following keywords, which will be replaced:
    # %MUTE_CHANNEL_NAME% - This will be replaced with the name of the specified channel
    # Typical BBCode like in Teamspeak 3 Client possible. You can use \n for a new line.
    # Use the character sequence §+§ to split a long message into multiple messages.
    You were moved to channel "%MUTE_CHANNEL_NAME%" because your client status is muted. You will be moved back if your client status is not muted anymore.

Top - Close help
Description:
Notify specified server groups about clients of specified server groups connecting to the TS3 server.
Configuration values for the main bot configuration file, by default this is named JTS3ServerMod_server.cfg:
IMPORTANT:
Replace FUNCTIONNAME with your chosen function name! You set the function name in the main bot configuration at the config key bot_functions! You can use this function multiple times! Make sure that you use different function names. And don't forget that you also need the following configuration for each function name of this function class in the main bot configuration file.

    # A comma separated list (without spaces) of server group ids, which should be watched on joining.
    FUNCTIONNAME_groups =
    # A comma separated list (without spaces) of server group ids, which should be notified about joining clients.
    FUNCTIONNAME_grouptargets =
    # A comma separated list (without spaces) of the total connection count (it's the same value as %CLIENT_TOTALCONNECTIONS% at the welcome message),
    # when this message should be send to the clients. Set this to -1 to show it every time.
    # Ranges like 1-100, -20 (means 20 or less) or 100- (means 100 or more) are also possible.
    FUNCTIONNAME_showonconnectionnumber = -1
    # A comma separated list (without spaces) of channel ids.
    # Depends on the given mode, target clients in this channels can be ignored or only clients in this channels receive the notify message!
    # If no channels should be ignored, set no channels here and select the channel list mode ignore!
    FUNCTIONNAME_channel_list =
    # Select one of the two modes for the channel list.
    # ignore = Clients in the selected channels will be ignored.
    # only = Only clients in the selected channels receive the notify message.
    FUNCTIONNAME_channel_list_mode = ignore
    # Select the message mode, how the notified clients should get the message.
    # poke, chat or none are valid values!
    FUNCTIONNAME_message_mode = chat
    # Select the message mode, how the clients (who joined the server) should get the message.
    # poke, chat or none are valid values!
    FUNCTIONNAME_messagenotified_mode = none
    # Path to file which contains the server group notify message
    FUNCTIONNAME_file = config/server1/servergroupnotifymessages.cfg

This function needs an additional config file, by default this is named servergroupnotifymessages.cfg. Content must be like the following:

    # JTS3ServerMod Config File
    # Server Group Notify message, specified clients get this message as chat or poke message.
    # You can use the following keywords, which will be replaced:
    # %SERVER_GROUP_ID% - Server Group ID
    # %SERVER_GROUP_NAME% - Server Group Name
    # %CLIENT_NAME% - Client Name
    # %CLIENT_NAME_CLICKABLE% - Clickable client name (many characters, not useful for poke messages!)
    # %CLIENT_DBID% - Client Database ID
    # %CLIENT_UNIQUEID% - Client Unique ID
    # %CLIENT_ID% - Current client ID on the server
    # %CLIENT_COUNTRY% - Short name of the client country, detected by the TS3 server
    # %CLIENT_VERSION% - Client version
    # %CLIENT_PLATFORM% - Client platform (Windows, Linux, ...)
    # %CLIENT_IP% - Client IP address, bot needs permission b_client_remoteaddress_view for this!
    # %CLIENT_CREATED% - Date and time of the first connection of the client
    # %CLIENT_TOTALCONNECTIONS% - Total connection count of the client
    # %CLIENT_MONTH_BYTES_UPLOADED% - Uploaded data in current month (filetransfer and avatar)
    # %CLIENT_MONTH_BYTES_DOWNLOADED% - Downloaded data in current month (filetransfer and avatar)
    # %CLIENT_TOTAL_BYTES_UPLOADED% - Uploaded data all times (filetransfer and avatar)
    # %CLIENT_TOTAL_BYTES_DOWNLOADED% - Downloaded data all times (filetransfer and avatar)
    # Typical BBCode like in Teamspeak 3 Client possible. You can use \n for a new line.
    # Use the character sequence §+§ to split a long message into multiple messages.
    Client [b]%CLIENT_NAME%[/b] of the server group [b]%SERVER_GROUP_NAME%[/b] joined server!

    # Server Group Notify message for the watched client.
    # If enabled, clients with a watched server group connecting the server get this message as chat or poke message.
    # You can use the following keywords, which will be replaced:
    # %CLIENT_COUNT% - Number of target group clients who get informed about this client
    # %CLIENT_NAMES% - List of names of target group clients who get informed about this client
    # %CLIENT_NAMES_CLICKABLE% - List of clickable client names of target group clients who get informed about this client (many characters, not useful for poke messages!)
    # The following keywords contains the information about the client, which connected the server:
    # %CLIENT_NAME% - Client Name
    # %CLIENT_DBID% - Client Database ID
    # %CLIENT_UNIQUEID% - Client Unique ID
    # %CLIENT_ID% - Current client ID on the server
    # %CLIENT_COUNTRY% - Short name of the client country, detected by the TS3 server
    # %CLIENT_VERSION% - Client version
    # %CLIENT_PLATFORM% - Client platform (Windows, Linux, ...)
    # %CLIENT_IP% - Client IP address, bot needs permission b_client_remoteaddress_view for this!
    # %CLIENT_CREATED% - Date and time of the first connection of the client
    # %CLIENT_TOTALCONNECTIONS% - Total connection count of the client
    # %CLIENT_MONTH_BYTES_UPLOADED% - Uploaded data in current month (filetransfer and avatar)
    # %CLIENT_MONTH_BYTES_DOWNLOADED% - Downloaded data in current month (filetransfer and avatar)
    # %CLIENT_TOTAL_BYTES_UPLOADED% - Uploaded data all times (filetransfer and avatar)
    # %CLIENT_TOTAL_BYTES_DOWNLOADED% - Downloaded data all times (filetransfer and avatar)
    # Typical BBCode like in Teamspeak 3 Client possible. You can use \n for a new line.
    # Use the character sequence §+§ to split a long message into multiple messages.
    Please wait, %CLIENT_COUNT% people are online to help you: %CLIENT_NAMES%

    # Server Group Notify message for the watched client, if no target group client is online.
    # If enabled, clients with a watched server group connecting the server get this message as chat or poke message.
    # The following keywords contains the information about the client, which connected the server:
    # %CLIENT_NAME% - Client Name
    # %CLIENT_DBID% - Client Database ID
    # %CLIENT_UNIQUEID% - Client Unique ID
    # %CLIENT_ID% - Current client ID on the server
    # %CLIENT_COUNTRY% - Short name of the client country, detected by the TS3 server
    # %CLIENT_VERSION% - Client version
    # %CLIENT_PLATFORM% - Client platform (Windows, Linux, ...)
    # %CLIENT_IP% - Client IP address, bot needs permission b_client_remoteaddress_view for this!
    # %CLIENT_CREATED% - Date and time of the first connection of the client
    # %CLIENT_TOTALCONNECTIONS% - Total connection count of the client
    # %CLIENT_MONTH_BYTES_UPLOADED% - Uploaded data in current month (filetransfer and avatar)
    # %CLIENT_MONTH_BYTES_DOWNLOADED% - Downloaded data in current month (filetransfer and avatar)
    # %CLIENT_TOTAL_BYTES_UPLOADED% - Uploaded data all times (filetransfer and avatar)
    # %CLIENT_TOTAL_BYTES_DOWNLOADED% - Downloaded data all times (filetransfer and avatar)
    # Typical BBCode like in Teamspeak 3 Client possible. You can use \n for a new line.
    # Use the character sequence §+§ to split a long message into multiple messages.
    Currently no admins are online, please write us an email.

Top - Close help
Description:
Move connecting clients of a specified server group to a specified channel. This function ignores clients with an own default channel set.
Configuration values for the main bot configuration file, by default this is named JTS3ServerMod_server.cfg:
IMPORTANT:
Replace FUNCTIONNAME with your chosen function name! You set the function name in the main bot configuration at the config key bot_functions! You can use this function multiple times!

    # A comma separated list (without spaces) of platform names (it's the same value as %CLIENT_PLATFORM% at the welcome message).
    # Only selected platforms will be moved or leave this empty to move all platforms.
    # Possible platforms: Windows, Mac, Linux, Android, iOS
    FUNCTIONNAME_platform_list =
    # Ignore the selected default channel from a client?
    # Set yes or no here!
    FUNCTIONNAME_ignore_default_channel = no
    # Select the message mode, how the clients should get the message.
    # poke, chat or none are valid values!
    FUNCTIONNAME_message_mode = chat
    # Path to file which contains the auto move configuration and message.
    FUNCTIONNAME_file = config/server1/automove.cfg

This function needs an additional config file, by default this is named automove.cfg. Content must be like the following:

    # JTS3ServerMod Config File
    # The first line is the chat message for the auto move function.
    # You can use the following keywords, which will be replaced:
    # %CHANNEL_NAME% - Target Channel Name
    # Typical BBCode like in Teamspeak 3 Client possible. You can use \n for a new line.
    # Use the character sequence §+§ to split a long message into multiple messages.
    You were moved to your default channel: %CHANNEL_NAME%

    # This is the list of server groups, which will be moved to a specified channel.
    # One line per server group starting with the server group id, followed by a comma, and ends with the channel id.
    # An example (please remove this example after you understand it):
    1,340

Top - Close help
Description:
Notify specified server groups about clients joining a specified channel.
Configuration values for the main bot configuration file, by default this is named JTS3ServerMod_server.cfg:
IMPORTANT:
Replace FUNCTIONNAME with your chosen function name! You set the function name in the main bot configuration at the config key bot_functions! You can use this function multiple times! Make sure that you use different function names. And don't forget that you also need the following configuration for each function name of this function class in the main bot configuration file.

    # Channel id that should be watched for new clients. You can only set one channel id here!
    FUNCTIONNAME_channel_id =
    # A comma separated list (without spaces) of server group ids.
    # Depends on the given mode, this server groups can be ignored or only this server groups will be watched!
    # If no server groups should be ignored, set no server groups here and select the group list mode ignore!
    FUNCTIONNAME_group_list =
    # Select one of the two modes for the server group list.
    # ignore = The selected server groups will be ignored.
    # only = Send a notify message only if the selected server groups join the channel.
    FUNCTIONNAME_group_list_mode = ignore
    # A comma separated list (without spaces) of server group ids, which should be notified about new clients in the specified channel.
    FUNCTIONNAME_grouptargets =
    # A comma separated list (without spaces) of channel ids.
    # Depends on the given mode, target clients in this channels can be ignored or only clients in this channels receive the notify message!
    # If no channels should be ignored, set no channels here and select the channel list mode ignore!
    FUNCTIONNAME_channel_list =
    # Select one of the two modes for the channel list.
    # ignore = Clients in the selected channels will be ignored.
    # only = Only clients in the selected channels receive the notify message.
    FUNCTIONNAME_channel_list_mode = ignore
    # Select the message mode, how the notified clients should get the message.
    # poke or chat are valid values!
    FUNCTIONNAME_message_mode = chat
    # Select the message mode, how the clients (who joined the channel) should get the message.
    # poke, chat or none are valid values!
    FUNCTIONNAME_messagenotified_mode = none
    # Path to file which contains the channel notify message
    FUNCTIONNAME_file = config/server1/channelnotifymessages.cfg

This function needs an additional config file, by default this is named channelnotifymessages.cfg. Content must be like the following:

    # JTS3ServerMod Config File
    # Channel Notify message, specified clients get this message as chat or poke message.
    # You can use the following keywords, which will be replaced:
    # %CLIENT_NAME% - Client Name
    # %CLIENT_NAME_CLICKABLE% - Clickable client name (many characters, not useful for poke messages!)
    # %CLIENT_DBID% - Client Database ID
    # %CLIENT_UNIQUEID% - Client Unique ID
    # %CHANNEL_NAME% - Watched Channel Name (channel name will only be read on bot start!)
    # %CHANNEL_NAME_CLICKABLE% - Clickable watched Channel Name (many characters, not useful for poke messages!)
    # Typical BBCode like in Teamspeak 3 Client possible. You can use \n for a new line.
    # Use the character sequence §+§ to split a long message into multiple messages.
    Client [b]%CLIENT_NAME%[/b] (DB ID: %CLIENT_DBID%) joined channel %CHANNEL_NAME%!

    # Channel Notify message for the watched client.
    # If enabled, clients joining the watched channel get this message as chat or poke message.
    # You can use the following keywords, which will be replaced:
    # %CLIENT_COUNT% - Number of target group clients who get informed about this client
    # %CLIENT_NAMES% - List of names of target group clients who get informed about this client
    # %CLIENT_NAMES_CLICKABLE% - List of clickable client names of target group clients who get informed about this client (many characters, not useful for poke messages!)
    # %CHANNEL_NAME% - Watched Channel Name
    # Typical BBCode like in Teamspeak 3 Client possible. You can use \n for a new line.
    # Use the character sequence §+§ to split a long message into multiple messages.
    Please wait in channel %CHANNEL_NAME%, %CLIENT_COUNT% people are online to help you.

    # Channel Notify message for the watched client, if no target group client is online.
    # If enabled, clients joining the watched channel get this message as chat or poke message.
    # You can use the following keywords, which will be replaced:
    # %CHANNEL_NAME% - Watched Channel Name
    # Typical BBCode like in Teamspeak 3 Client possible. You can use \n for a new line.
    # Use the character sequence §+§ to split a long message into multiple messages.
    Currently no admins are online, please write us an email or wait in channel %CHANNEL_NAME%.

Top - Close help
Description:
Chat command to check the last online time of a client.
List of chat commands:
IMPORTANT:
Replace FUNCTIONNAME with your chosen function name! You set the function name in the main bot configuration at the config key bot_functions!

!FUNCTIONNAME <search string> | Shows the last online time of a client, a client name as argument is required. Use * as a wildcard. You can also search using the complete unique id.

Configuration values for the main bot configuration file, by default this is named JTS3ServerMod_server.cfg:
IMPORTANT:
Replace FUNCTIONNAME with your chosen function name! You set the function name in the main bot configuration at the config key bot_functions! You can use this function only once!

    # Who should be able to use this chat command? Possible values: all, botadmin, servergroup
    FUNCTIONNAME_user = botadmin
    # A comma separated list (without spaces) of server group ids.
    # Depends on the given mode, this server groups can be ignored or only this server groups will be allowed to use this chat command!
    # This is only needed, if user servergroup is selected!
    FUNCTIONNAME_group_list =
    # Select one of the two modes for the server group list.
    # ignore = The selected server groups will be ignored.
    # only = Only the selected server groups are allowed to use this chat command!
    FUNCTIONNAME_group_list_mode = ignore

Top - Close help
Description:
Automatically delete channels if empty for more than X hours.
List of chat commands:
IMPORTANT:
Replace FUNCTIONNAME with your chosen function name! You set the function name in the main bot configuration at the config key bot_functions!

!FUNCTIONNAME list | Sends back a list of channels, which will be checked for inactivity and deleted!

Configuration values for the main bot configuration file, by default this is named JTS3ServerMod_server.cfg:
IMPORTANT:
Replace FUNCTIONNAME with your chosen function name! You set the function name in the main bot configuration at the config key bot_functions! You can use this function multiple times! Make sure that you use different function names. And don't forget that you also need the following configuration for each function name of this function class in the main bot configuration file.

    # After how many hours an empty channel should be deleted? Possible values between 1 and 10000 hours.
    FUNCTIONNAME_emptydeletetime = 168
    # After how many hours an empty channel will be marked as inactive (a prefix to the channel name or a channel icon will be added)? Possible values between 1 and 10000 hours. Set to -1 to disable this feature!
    FUNCTIONNAME_emptywarntime = 144
    # Set the TS3 icon id here (will be displayed in TS3 client, if you hover with the mouse on the icon in the icons selection window).
    # This icon will be set as channel icon, if the channel is empty for a longer time than set at the empty warn time.
    # Set -1 to use the channel name prefix instead.
    FUNCTIONNAME_emptywarniconid = -1
    # Never delete permanent channels? Set yes or no here!
    FUNCTIONNAME_ignore_permanent = yes
    # Never delete semi permanent channels? Set yes or no here!
    FUNCTIONNAME_ignore_semipermanent = no
    # Never delete spacer channels (like [cspacer])? Set yes or no here!
    FUNCTIONNAME_ignore_spacer = no
    # A comma separated list (without spaces) of channel ids you like to ignore. This channels don't get deleted!
    FUNCTIONNAME_ignore_channels =
    # A comma separated list (without spaces) of parent channel ids (use 0 for the top level).
    # Depends on the given mode, all sub-channels of this channels can be ignored or only sub-channels of this channels will be checked!
    # The check parent channel only mode allows you to check the activity only on the selected parent channels (which will be reset also on activity in sub-channels)
    # and delete the parent channel including the sub channels, if it is detected inactive.
    # If no parent channels should be ignored, set no channels here and select the channel list mode ignore!
    FUNCTIONNAME_parentchannel_list =
    # Select one of the four modes for the parent channel list.
    # ignore = All sub-channels of the selected channels will be ignored.
    # only = Only sub-channels of the selected channels will be checked.
    # parentignore = Only the parent channels will be checked (and will delete all sub channels), which are not on the list.
    # parentonly = Only the parent channels will be checked (and will delete all sub channels), which are on the list.
    FUNCTIONNAME_parentchannel_list_mode = ignore

Top - Close help
Description:
Deletes clients (including permissions) from the TS3 database after X days inactivity (client database list cache must be enabled!).
Configuration values for the main bot configuration file, by default this is named JTS3ServerMod_server.cfg:
IMPORTANT:
Replace FUNCTIONNAME with your chosen function name! You set the function name in the main bot configuration at the config key bot_functions! You can use this function only once!

    # How many days a client has to be inactive to get deleted from the TS3 server database?
    # Possible values are between 30 and 730.
    # Notice: After the client was deleted, the client can connect again to the server, but all permissions are lost!
    FUNCTIONNAME_inactivity_days = 180
    # A comma separated list (without spaces) of server group ids.
    # Depends on the given mode, this server groups can be ignored or only this server groups will be checked!
    # If no server groups should be ignored, set no server groups here and select the group list mode ignore!
    FUNCTIONNAME_group_list =
    # Select one of the two modes for the server group list.
    # ignore = The selected server groups will be ignored.
    # only = Only the selected server groups will be checked.
    FUNCTIONNAME_group_list_mode = ignore

Top - Close help
Enter the text you want to check here:
Enter your regular expression here:
Check now! - Close Regex Tester!
Important: This regular expression tester will use the JavaScript implementation of your browser.
The result may be different to the Java implementation used by the Teamspeak 3 Bot!
Your regular expression match with your text.
The channel would be deleted!
The client would be kicked!
Close result
Your regular expression do not match with your text.
The channel would not be deleted!
The client would not be kicked!
Close result