Here I explain how to upgrade from the free version of Crosschat Ascended to the premium plugin, how licensing works, and how to verify that premium features are actually active.
The premium plugin uses the same base config but requires a valid account key and license to enable all features.
On top of everything the free plugin does, premium unlocks (non-exhaustive list):
PermissionsFormatting).Tribelogs block).JoinLeaveWebhook, JoinFormat, LeaveFormat)./pm, /r) with rich formatting./ignore, /unignore).Most of these are controlled by the Premium section in the config (see the Permissions & Formatting page for deeper examples).
Typical flow:
/trial asa/licenses in DM with the bot to see your:
Write down your account key. You’ll need to paste it into the plugin (and bot) configs.
If you can’t see it, check for a message in DM like “Please, use /licenses command in my DM” and follow the instructions.
You also need to have bought / registered to be able to see your account key
Open config.json In premium builds there will be a section for licensing:
"AccountKey": "<PLACEHOLDER>",
If your build doesn’t show anything that looks like AccountKey, you can add it at the top of the file, below the first curly bracket ( { )
When the server starts and the plugin loads, the premium build will:
Read the account key / license information from the config.
Contact my license backend to verify the license.
If everything is OK, write logs similar to:
[CrosschatAscended][info] Successfully authorized CrosschatAscended. Loading plugin...
[CrosschatAscended][info] Crosschat ascended authorized. Premium features enabled! Thanks for purchasing!
If it can’t verify, you’ll see something like:
[CrosschatAscended][warning] Using CrossChat Ascended Free. To get the full version, please purchase it at <PLACEHOLDER: store URL>
even though you own a license – that means authorization failed and you are still effectively running in free mode.
The most common reasons for failure are explained below.
Licenses are usually bound to some combination of:
Over time I’ve had to add special handling for:
So you may see support messages like:
What this means for you:
In those cases, open a support thread with your account key, current public IP, and a snippet from your plugin logs.
There are several common patterns (the exact license rules are <PLACEHOLDER> and might change):
Single physical host, multiple maps
One account key, one license type, multiple ASA servers on the same machine.
Typically all maps can use the same license as long as they share the same HWID/IP rules.
Multiple physical hosts
You might need separate licenses or a “hoster” license type.
Exact limits and pricing are max of 8 maps, same pricing.
Bot on a separate machine
Plugin and bot can run on different machines.
They only need database connectivity that permit the bot’s host.
If you see some maps showing as premium and others as free, even though they share the same DB and config, it is almost always a licensing / IP / HWID mismatch for that specific instance.
After restarting each map, check the logs for that server. You want to see these in order:
[API][info] Loaded plugin CrossChatAscended V<PLACEHOLDER>
[CrosschatAscended][info] MapName: <MapName>
[CrosschatAscended][info] Successfully authorized CrosschatAscended. Loading plugin...
[CrosschatAscended][info] Crosschat ascended authorized. Premium features enabled! Thanks for purchasing!
If instead you see:
[CrosschatAscended][warning] Using CrossChat Ascended Free. To get the full version, please purchase it at <PLACEHOLDER>
then premium is not active on that instance.
Checklist:
/licenses in DM.)The premium features live under the Premium block in your config. A simplified example based on the reference config is:
"Premium": {
"PermissionsFormatting": {
"Default": {
"ChatFormat": "{map}: {tags} {sender} {tribe}: {message}",
"Priority": 0,
"Icon": "",
"FormattingParts": {
"map": "[{name}]",
"tags": "{name}",
"sender": "<RichColor Color=\"1, 0.9, 0, 1\">{name}</>",
"tribe": "<RichColor Color=\"1, 0.9, 0, 1\">[{name}]</>",
"message": "{message}"
}
},
"Admin": {
"ChatFormat": "{map}: {tags} {sender} {tribe}: {message}",
"Priority": 9999,
"Icon": "",
"FormattingParts": {
"map": "[{name}]",
"tags": "{name}",
"sender": "<RichColor Color=\"1, 0.9, 0, 1\">{name}</>",
"tribe": "<RichColor Color=\"1, 0.9, 0, 1\">[{name}]</>",
"message": "<RichColor Color=\"1, 0, 0, 1\">{message}</>"
}
}
},
"ChatTags": {
"StackChatTags": true,
"Admin": {
"Priority": 9999,
"Icon": "",
"Text": "<RichColor Color=\"1, 0, 0, 1\">[{icon}Admin]</>",
"CanBeDisabled": true
}
},
"Tribelogs": {
"Enabled": true,
"OnlyTribeOwnerCanSetWebhook": true,
"OnlyTribeAdminsCanSetWebhook": false,
"AdminWebhook": "",
"Permission": "CCA.Tribelog",
"Format": "{map}: {log}"
},
"MutedPermissionGroup": "Muted",
"MapIcons": {
"TheIsland_WP": "<PLACEHOLDER: map icon resource>"
},
"JoinLeaveWebhook": "",
"JoinFormat": "{map}: Player logged in. PlatformName: {platformname}. IngameName: {ign}. EOS: {eosid}. TribeId: {tribeid}. TribeName: {tribename}. DiscordName: {discordName}",
"LeaveFormat": "{map}: Player logged off. PlatformName: {platformname}. IngameName: {ign}. EOS: {eosid}. TribeId: {tribeid}. TribeName: {tribename}. DiscordName: {discordName}"
},
Each sub-feature is documented in more depth in the Permissions & Formatting page, but a few quick tips:
"..." in MapIcons if you aren’t actually using icons – either put a valid image path or remove the entry entirely.Default formatting group.MutedPermissionGroup name in sync with your Ark:SA Permissions config.LicenseKey fields.If the server won’t boot or crashes as soon as the premium plugin loads:
CrosschatAscended.dll.MapIcons entry or missing fields) can cause a crash and I usually patch those quickly.If you’re stuck, always include:
Last updated: 2025-11-25T13:50:13