Configuration
Leaderboard, popup and scoring options for TribeScore.
On this page12 sections
Configuration is read once when the plugin loads. Every change below needs a server restart to take effect. Defaults are the values in the shipped config.json.
General
| Setting | Default | What it does |
|---|---|---|
MapTag | "MAP" | A short tag unique to this map, such as TI or EXT. Recorded with every event so you can tell which server it happened on. Scores themselves are cluster-wide. |
DebugLogging | false | Logs every event, including the ones that did not score and why. Useful while setting up; turn it off afterwards. |
Database
| Setting | Default | What it does |
|---|---|---|
Database.MysqlHost | — | Address of your MySQL server. Required. |
Database.MysqlUser | — | The MySQL user TribeScore connects as. Required. |
Database.MysqlPass | — | That user's password. |
Database.MysqlDB | "tribescore" | The database to use. Every map in the cluster must point at the same one. Required. |
Database.MysqlPort | 3306 | MySQL port. |
Point values
Gains and losses are separate settings on purpose, so you can run an uneven economy — for example, losses worth half a kill, so a tribe that is raided once is not buried for good.
| Setting | Default | What it does |
|---|---|---|
Scoring.PlayerKill | 25 | Points for killing an enemy player. |
Scoring.PlayerDeathPenalty | 25 | Points a tribe loses when one of its players is killed. |
Scoring.TamedDinoKill | 10 | Points for killing an enemy tame. |
Scoring.TamedDinoLossPenalty | 10 | Points a tribe loses when one of its tames is killed. |
Scoring.StructureDestroy | 2 | Points for destroying an enemy structure that no override below matches. |
Scoring.StructureLossPenalty | 2 | Points a tribe loses for one of its structures that no override matches. |
Scoring rules
| Setting | Default | What it does |
|---|---|---|
Scoring.ScoreCollapsedStructures | false | Credits structures that fall as a result of a destroyed load-bearing piece. |
Scoring.CountAlliedAsEnemy | false | Scores kills between allied tribes as if they were enemies. For servers where alliances are not binding. |
Scoring.AllowNegativeScores | true | Lets a tribe's score go below zero. Set to false to keep scores at zero or above. |
Scoring.IgnoreTribeIDs | [] | Tribe IDs that never gain or lose points — admin, staff and event tribes. |
Scoring.TransferPointsOnTribeMerge | false | When a tribe merges into another in game, moves its points and counts to the tribe it merged into. The old tribe carries on from zero, since the game keeps it with its remaining members. |
Scoring.TribeIdentity | "Auto" | How a tribe is recognised across maps. Not in the shipped file — add it only to pin a choice. See below. |
Enabling collapse scoring changes your economy
Structure point values
Structures are priced by matching their class name against an ordered list. The first match wins and values never stack. Your custom list is checked before the built-in one.
Order matters: material entries sit below turret entries, because some turret class names contain a material word. A material word prices anything containing it, not only building pieces.
| Match | Default points |
|---|---|
| Tek turret | 75 |
| Heavy turret | 50 |
| Plant Species X turret | 5 |
| Generic turret | 25 |
| Tek | 15 |
| Metal | 8 |
| Stone | 4 |
| Wood | 2 |
| Thatch | 1 |
Scoring.StructureOverrides holds the built-in list above; Scoring.CustomStructureOverrides is yours. Each entry takes a Match and a Destroy and Loss value:
"CustomStructureOverrides": [
{ "Match": "Vault", "Destroy": 40, "Loss": 40 },
{ "Match": "TekGenerator", "Destroy": 100, "Loss": 100 }
]Matchis part of the structure's class name, not case-sensitive. List alternatives separated by commas, such as"TekTurret,TurretTek", when you are not sure which way round a name runs.- Leave out
DestroyorLossand that side uses the generic structure value, so you can reward cracking a vault without changing what losing one costs. - Within one list the first match still wins, so put the most specific entries first.
These values are a starting point
Excluding a structure
An override with both its destroy and loss values set to 0 means the class never scores at all: no points, no audit entry, no popup. This is the way to stop incidental objects — loot bags, spent charges — from moving the board. The shipped custom list already excludes death loot bags and C4 charges.
Finding a structure's real class name
Class names do not always match what you would guess from the game. The plugin logs each distinct structure class once per server lifetime, so the reliable approach is to destroy one of the structures you want to price, read the class name out of the log, and use that in your override.
Tribe identity across maps
ARK does not keep a tribe's ID the same from one map to the next, so without help one tribe's points would be split across several entries that never add up. Scoring.TribeIdentity decides how TribeScore recognises a tribe instead:
| Value | What it does |
|---|---|
"Auto" | The default. Uses tribe IDs when a cluster-wide tribe table such as ClusterSync's is found, and founder plus tribe name when not. You do not need to decide. |
"TribeId" | Always uses the game's tribe ID. Right for a single map, or a cluster where something keeps tribe IDs consistent. |
"OwnerAndName" | Always recognises a tribe by its founder and its name, which stay the same on every map. |
When a tribe is recognised by founder and name:
- Two different tribes that happen to share a name stay separate, because their founders differ.
- The same tribe founded on another map by a different member, or under a different name, also counts as a separate tribe.
- Renaming a tribe starts a fresh score from that point on. Renaming it back picks the original score up again.
- A single map, or a brand-new cluster, behaves exactly as it would with tribe IDs until a second map comes into play.
Pin it once a server has points
TribeIdentity to the mode it is using now rather than leaving it on Auto.ClusterSync integration
| Setting | Default | What it does |
|---|---|---|
ClusterSync.Enabled | true | Looks for a cluster-wide table of tribe names and uses it. Set to false to never look. |
If you also run ClusterSync, TribeScore finds its tribe table on its own — there is nothing else to configure. A tribe that renamed shows its current name on the board, and tribes with no presence on the map where a fight happened still resolve correctly. Any table that maps a tribe ID to a tribe name works, not only ClusterSync's.
- The table must be on the same MySQL server as TribeScore's own database.
- TribeScore only reads from it and never writes there.
- If nothing is found, TribeScore carries on with its own stored names. That is a supported setup, not an error, and a tribe table that appears later is picked up without a restart.
Event creatures
With CustomDinoEvents installed, tribes can earn points for killing or taming its event creatures. Off by default.
| Setting | Default | What it does |
|---|---|---|
CustomDinoEvents.Enabled | false | Switches event creature scoring on. |
CustomDinoEvents.EventDinoKill | 15 | Points for killing an event creature. |
CustomDinoEvents.EventDinoTame | 40 | Points for taming one. Higher than a kill by default, since taming takes longer and is harder to defend. |
CustomDinoEvents.ProfilePoints | Apex 30 / 75, Ascended 15 / 40 | Kill and tame values per event profile, so a rarer tier can be worth more. A profile not listed uses the two values above; a profile set to 0 never scores. |
"CustomDinoEvents": {
"Enabled": true,
"EventDinoKill": 15,
"EventDinoTame": 40,
"ProfilePoints": {
"Apex": { "Kill": 30, "Tame": 75 },
"Ascended": { "Kill": 15, "Tame": 40 }
}
}- These are the only points that come from something other than PvP. A wild event creature has no owner, so the tribe that kills or tames it gains and nobody loses. Leave the feature off if that is not how your server plays.
- Profile names are the ones set in CustomDinoEvents, not case-sensitive. If you add your own profile there, add it here too or it earns the flat values.
- Ignored tribes cannot earn these either.
- CustomDinoEvents must have
Integration.PublishEventApion, which is its default. Once the map is running, the TribeScore log says whether the two plugins found each other. - If you install CustomDinoEvents after TribeScore has started, restart TribeScore.
Enable it on every map or none
Point popups
| Setting | Default | What it does |
|---|---|---|
PointPopups.Enabled | true | Master switch. false also removes the /score command. |
PointPopups.DefaultOn | true | What a player who has never used /score sees. |
PointPopups.ShareWithTribe | true | Sends the popup to every online tribe member rather than only the killer. Each member still honours their own /score setting. |
PointPopups.ShareRadius | 20000 | Skips tribemates too far away to see the text, in world units (about 65 foundations). 0 means unlimited. |
PointPopups.Format | "+{points}" | The popup text. Placeholders are listed below. |
PointPopups.EnabledMessage, DisabledMessage | — | Replies to /score 1 and /score 0. |
PointPopups.StatusMessage | — | Reply to a bare /score. {state} becomes ON or OFF. |
PointPopups.UsageMessage | — | Reply to /score with anything else after it. |
PointPopups.DisplayScale | 0.5 | Popup text size. |
PointPopups.DisplaySeconds | 2.0 | How long each popup stays on screen. |
PointPopups.RiseSpeed | 40.0 | How quickly the popup drifts upward. |
PointPopups.FadeOutTime | 0.5 | How long the popup takes to fade away. |
PointPopups.Color | green | [r, g, b, a], each from 0 to 1. A malformed value keeps the default green. |
Every message a player sees is in this block. Set any of them to "" to hide it.
| Placeholder | Becomes |
|---|---|
{points} | The points earned, such as 75 for a Tek turret. |
{target} | What was killed or destroyed. |
{victim} | The victim's tribe name. Can be empty when this map does not know the tribe. |
Leaderboard
| Setting | Default | What it does |
|---|---|---|
Leaderboard.WebhookUrl | — | The Discord webhook the board posts to. Set it on every map, not only one. |
Leaderboard.PostLeaderboard | true | Whether this map may post. Safe to enable on every map — you will still get one board per interval. Set to false to keep a test server out of your live channel. |
Leaderboard.Style | "Fields" | Fields, Table or Ansi. |
Leaderboard.IntervalMinutes | 60 | How often the board posts. Must match across every map in the cluster. |
Leaderboard.TopCount | 15 | How many tribes the post shows. Every tribe is still recorded. |
Leaderboard.Title | "Leaderboard" | Heading of the post. |
Leaderboard.WebhookUsername | "Leaderboard" | The name the post appears under in Discord. |
Leaderboard.FooterText | "" | Optional footer line. |
Leaderboard.EmbedColor | 3066993 | Colour of the post's accent bar, as a decimal number. The default is green. |
Leaderboard.EventLogRetentionDays | 30 | How many days of individual scoring events to keep in the database. 0 keeps them forever. Totals are never removed. |
If you delete a setting from the file
A setting left out of config.json uses its built-in value, which is the same as the default above except for three: PointPopups.DisplayScale becomes 1.4, ClusterSync.Enabled becomes false, and the two flat event creature values become 0. Keeping the shipped file and editing values is the simplest way to avoid surprises.