TCAdmin is a control panel for provisioning game and voice servers.


Table of Contents

Supported Features

CreateCancelSuspendUnsuspendManagementConfig Options

Installing TCAdmin

  1. Visit [Settings] > [Company] > [Modules] > Available.
  2. Click the "Install" button within the TCAdmin module listing.

A message will be displayed, indicating that the module was successfully installed. Then click the "Add Account" button.

Enter your TCAdmin details.

Field NameDescription
Server LabelEnter the label for this server, it can be a friendly name.
HostnameEnter the Hostname to your TCAdmin server, e.g. tcadmin.yourdomain.com
User NameEnter the Username to your TCAdmin server, e.g. admin
PortEnter the Port to your TCAdmin server, e.g. 8880
Use SSL when connecting to the API (recommended)Check this option if using SSL. By default SSL is not enabled in TCAdmin.
PasswordEnter the Password to your TCAdmin server.

Configurable Options Overview

This module supports configurable options which may be used for provisioning Game or Voice servers. Some options are required. Configurable Options override any matching Package settings.

Certain Configurable Options are required, but this list in no way limits the Configurable Options that can be created. Only the following Configurable Options can alter the way TCAdmin game or voice servers are provisioned.


Option NamePossible ValuesRecommended Field TypeDescription
game_slotsinteger >= 0Quantity, Dropdown

Determines how many slots will be assigned to the game server.

 This configurable option is required for game servers.


game_privateinteger = 0 or 1Dropdown

A value of 1 will make the game server private.

 This configurable option is required for game servers.


game_datacenterinteger >= 1Dropdown

The data center ID from TCAdmin. Can be obtained within TCAdmin under Data Centers, by observing the ID of the desired data center.

 This configurable option is required for game servers.


voice_slotsinteger >= 0Quantity, Dropdown

Determines how many slots will be assigned to the voice server.

 This configurable option is required for voice servers.


voice_privateinteger = 0 or 1Dropdown

A value of 1 will make the voice server private.

 This configurable option is required for voice servers.


voice_upload_quotainteger (in MB)Dropdown

Sets the upload quota.

 This configurable option is only required for Teamspeak 3 Voice Servers.


voice_download_quotainteger (in MB)Dropdown

Sets the download quota.

 This configurable option is only required for Teamspeak 3 Voice Servers.


voice_datacenterinteger >= 0Dropdown

The data center ID from TCAdmin. Can be obtained within TCAdmin under Data Centers, by observing the ID of the desired data center.

 This configurable option is required for voice servers.


Creating Configurable Options

The following steps describe how to create configurable options. This section describes the following:

  1. Creating a Configurable Option Group
  2. Creating Configurable Options, and assigning them to the Group (repeat this step as necessary to create all Configurable Options required)

Creating an Option Group

To create a Configurable Option Group, visit [Packages] > Options, and click the "Create Group" button.

Field NameDescription
NameEnter a name for this group.
DescriptionEnter a description for this group (optional).
Package Membership

Leave this section blank, we will add the options to the group when creating the options instead. If you have already created the options, you may add them to the group on this step.

After filling out these options, click the "Create Group" button to create the Option Group.

Creating a Configurable Option

To create a Configurable Option, visit [Packages] > Options, and click the "Create Option" button.

Field NameDescription
LabelEnter a label, which will appear above or next to this form field.
NameEnter a name, which is the form field name. (Important! This should match an Option Name described above. The module requires specific naming.)
TypeSelect the field type from "Checkbox", "Radio", "Drop-down", and "Quantity".
Options SectionSet pricing information within the Options section. The fields required here may vary depending on the "Type" selected above.
Group Membership SectionAdd this Configurable Option to the previously created Option Group by moving the Group from the right to the left in the multi-select box.

After filling out these options, click the "Create Package Option" button to create the Option. Repeat as necessary to create all of the configurable options you wish to make available to the client during checkout.

Sample Configurable Options

The following are sample configurations for each of the supported configurable options listed above, and may serve as good examples for getting started.

Option NameSample Configuration Screenshot (Click for full size)
game_datacenter

game_slots

game_private

voice_datacenter

voice_slots

voice_private

voice_upload_quota

voice_download_quota

Creating Packages


Packages define the pricing, welcome email, module and more. Packages can be assigned to Package Groups, and added to Order Forms. To create a Package, visit [Packages] > Browse, and click the "Create Package" button.

Creating a Package consists of several sections:

Basic

The Basic section consists of the following options:

Field NameDescription
Package NameEnter the name of this Package, it will be visible wherever services are listed and on any order forms.
Status"Active" is the default, "Inactive", and "Restricted" are also available.
Quantity AvailableIf this Package has a limited quantity available, enter the quantity, or leave it as "Unlimited".
DescriptionEnter a Description for this Package. HTML is allowed, and descriptions appear on order forms.
Configurable OptionsA Configurable Option Group may be selected if previously created.
Module

Select "Vultr" for the module.

Module Options

The Module Options section consists of the following options, which are specific to TCAdmin:

Field NameDescription
Server GroupSelect "Any" unless you are running many TCAdmin master nodes and have added them to separate groups within the module.
ServerSelect your TCAdmin server.
Server TypeSelect "Game Server", or "Voice Server"
Supported Tcadmin ServersSelect the game or voice server to use for this Package.
Start after CreationSelect "Yes" to have the server start automatically after ordered and provisioned.
PrioritySet the priority this server will be given. "Normal", "Above Normal", "Below Normal", "High", "Idle", and "Real Time" are available options.
StartupSelect how startup should occur, "Automatic", "Manual", or "Disable".

Pricing

Field NameDescription
TermEnter the term for the desired pricing option. For example, if you wish to create a 3 month pricing option, enter 3 here.
PeriodSelect the period for this pricing option. "Day", "Week", "Month", "Year", and "One time" are options. The client will be invoiced every "term period", for example every 3 months if 3 is entered for term, and Month is selected for period.
CurrencySelect the currency this pricing option is available for.
PriceEnter the price for this pricing option.
Setup FeeIf there is a setup fee, enter it here.
Cancellation FeeIf there is a fee to cancel early, enter it here.

Click the "Add Additional Price" to add more pricing options. It's common for people to create 1 Month, 3 Month, 6 Month, and 1 Year price options. There are many possible combinations.

Welcome Email

The "Tags" section describes tags that may be used in the welcome email. The welcome email content is inserted into the "Service Creation" email template under [Settings] > [Company] > [Emails] > Service Creation. Only details unique to this service should be entered into the welcome email section for the package.

Sample Email

This sample email could be used in the Package Welcome Email section to help you get started. Be sure to enter content for your welcome email in both the HTML and Text sections.

Thank you for choosing us for your Game Server Hosting!

Here are the details for your server:

TCAdmin URL: https://{module.host_name}:{module.port}
Hostname: {service.hostname}
User Name: {service.user_name}
Password: {service.user_password}
RCON: {service.rcon_password}
Private Password: {service.private_password}

When creating or editing a package that uses this module, the following tags will be available:

TagsDescriptionNotes
{module.host_name}The host name for your TCAdmin Panele.g. "tcadmin.domain.com".
{module.port}The port number for your TCAdmin Panel

e.g. "8880"

{service.hostname}The hostname for the game server, provided by the client.e.g. "mycsgoserver.domain.com"
{service.rcon_password}The RCON password for the game server, provided by the client.
{service.private_password}The private password for the game server, provided by the client.
{service.user_name}The user name for TCAdmin panel access for the client.
{service.user_password}The password for TCAdmin panel access for the client.


Due to the nature of tag objects containing several fields, many of which are likely irrelevant for use in email templates, but may be useful to you in certain circumstances, a dump of the tags are shown below.

 

stdClass Object
        (
            [id] => 8
            [id_format] => {num}
            [id_value] => 8
            [module_id] => 7
            [name] => Counter-Strike GO
            [description] => 
            [description_html] => 
            [qty] => 
            [module_row] => 3
            [module_group] => 
            [taxable] => 0
            [single_term] => 0
            [status] => active
            [company_id] => 1
            [prorata_day] => 
            [prorata_cutoff] => 
            [id_code] => 8
            [email_content] => Array
                (
                    [0] => stdClass Object
                        (
                            [lang] => en_us
                            [html] => <p>&nbsp;{module.host_name} {module.port} {package.supported_servers} {package.server_type} {package.start} {package.priority} {package.startup} {service.client_package_id} {service.hostname} {service.rcon_password} {service.private_password} {service.user_name} {service.user_password}</p>

<p>&nbsp;</p>

<p>{%debug%}</p>

                            [text] =>  {module.host_name} {module.port} {package.supported_servers} {package.server_type} {package.start} {package.priority} {package.startup} {service.client_package_id} {service.hostname} {service.rcon_password} {service.private_password} {service.user_name} {service.user_password}

{%debug%}
                        )

                )

            [pricing] => Array
                (
                    [0] => stdClass Object
                        (
                            [id] => 14
                            [pricing_id] => 19
                            [package_id] => 8
                            [term] => 1
                            [period] => month
                            [price] => 8.0000
                            [setup_fee] => 0.0000
                            [cancel_fee] => 0.0000
                            [currency] => USD
                        )

                )

            [meta] => stdClass Object
                (
                    [priority] => Normal
                    [server_type] => game
                    [start] => 1
                    [startup] => Automatic
                    [supported_servers] => 96
                )

            [groups] => Array
                (
                    [0] => stdClass Object
                        (
                            [id] => 5
                            [name] => Game Servers
                            [description] => 
                            [type] => standard
                            [company_id] => 1
                            [allow_upgrades] => 1
                        )

                )

            [option_groups] => Array
                (
                    [0] => stdClass Object
                        (
                            [id] => 2
                            [name] => TCAdmin Games
                            [description] => 
                        )

                )

            [priority] => Normal
            [server_type] => game
            [start] => 1
            [startup] => Automatic
            [supported_servers] => 96
        )


stdClass Object
        (
            [id] => 9
            [parent_service_id] => 
            [package_group_id] => 5
            [id_format] => {num}
            [id_value] => 9
            [pricing_id] => 14
            [client_id] => 1
            [module_row_id] => 3
            [coupon_id] => 
            [qty] => 1
            [override_price] => 
            [override_currency] => 
            [status] => active
            [date_added] => 2018-03-29 20:49:51
            [date_renews] => 2018-04-29 20:49:51
            [date_last_renewed] => 
            [date_suspended] => 
            [date_canceled] => 
            [id_code] => 9
            [fields] => Array
                (
                    [0] => stdClass Object
                        (
                            [key] => client_package_id
                            [value] => 1_ein0ctvkkg5yhw
                            [serialized] => 0
                            [encrypted] => 1
                        )

                    [1] => stdClass Object
                        (
                            [key] => hostname
                            [value] => csgo2.blesta.com
                            [serialized] => 0
                            [encrypted] => 1
                        )

                    [2] => stdClass Object
                        (
                            [key] => private_password
                            [value] => password45
                            [serialized] => 0
                            [encrypted] => 1
                        )

                    [3] => stdClass Object
                        (
                            [key] => rcon_password
                            [value] => password45
                            [serialized] => 0
                            [encrypted] => 1
                        )

                    [4] => stdClass Object
                        (
                            [key] => user_name
                            [value] => Username
                            [serialized] => 0
                            [encrypted] => 1
                        )

                    [5] => stdClass Object
                        (
                            [key] => user_password
                            [value] => #lh&7jjkf$&
                            [serialized] => 0
                            [encrypted] => 1
                        )

                )

            [package_pricing] => stdClass Object
                (
                    [id] => 14
                    [package_id] => 8
                    [pricing_id] => 19
                    [term] => 1
                    [period] => Month
                    [price] => 8.0000
                    [setup_fee] => 0.0000
                    [cancel_fee] => 0.0000
                    [currency] => USD
                )

            [package] => stdClass Object
                (
                    [id] => 8
                    [id_format] => {num}
                    [id_value] => 8
                    [module_id] => 7
                    [name] => Counter-Strike GO
                    [description] => 
                    [description_html] => 
                    [qty] => 
                    [module_row] => 3
                    [module_group] => 
                    [taxable] => 0
                    [single_term] => 0
                    [status] => active
                    [company_id] => 1
                    [prorata_day] => 
                    [prorata_cutoff] => 
                )

            [options] => Array
                (
                    [0] => stdClass Object
                        (
                            [id] => 5
                            [service_id] => 9
                            [option_pricing_id] => 2
                            [qty] => 8
                            [option_value] => 
                            [option_value_name] => Slots
                            [option_id] => 2
                            [option_label] => Game Slots
                            [option_name] => game_slots
                            [option_type] => quantity
                            [option_addable] => 1
                            [option_editable] => 1
                            [option_pricing_term] => 1
                            [option_pricing_period] => month
                            [option_pricing_price] => 0.2000
                            [option_pricing_setup_fee] => 0.0000
                            [option_pricing_currency] => USD
                        )

                    [1] => stdClass Object
                        (
                            [id] => 6
                            [service_id] => 9
                            [option_pricing_id] => 3
                            [qty] => 1
                            [option_value] => 0
                            [option_value_name] => Public
                            [option_id] => 3
                            [option_label] => Public or Private?
                            [option_name] => game_private
                            [option_type] => select
                            [option_addable] => 1
                            [option_editable] => 1
                            [option_pricing_term] => 1
                            [option_pricing_period] => month
                            [option_pricing_price] => 0.0000
                            [option_pricing_setup_fee] => 0.0000
                            [option_pricing_currency] => USD
                        )

                    [2] => stdClass Object
                        (
                            [id] => 7
                            [service_id] => 9
                            [option_pricing_id] => 5
                            [qty] => 1
                            [option_value] => 1
                            [option_value_name] => Tustin
                            [option_id] => 4
                            [option_label] => Data Center
                            [option_name] => game_datacenter
                            [option_type] => select
                            [option_addable] => 1
                            [option_editable] => 0
                            [option_pricing_term] => 1
                            [option_pricing_period] => month
                            [option_pricing_price] => 0.0000
                            [option_pricing_setup_fee] => 0.0000
                            [option_pricing_currency] => USD
                        )

                )

            [name] => csgo2.blesta.com
            [client_package_id] => 1_ein0ctvkkg5yhw
            [hostname] => csgo2.blesta.com
            [private_password] => password
            [rcon_password] => password
            [user_name] => Username
            [user_password] => #lh&jjkff$&
        )


Group Membership

If this is the first Package you are creating with this module, select the "Create a New Group" option, and enter a Group name. If you are adding a subsequent Package and wish for it to be part of the same group, select "Select from Available Groups", and move the group from the right to the left of the multi-select box.

When finished, click "Create Package" to create this package.

Final Steps

The only thing left to do is to add this Package Group to an order form so clients may place orders for your Vultr servers. See Creating an Order Form for more details.