Skip to content
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

SettingDefaultWhat 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.
DebugLoggingfalseLogs every event, including the ones that did not score and why. Useful while setting up; turn it off afterwards.

Database

SettingDefaultWhat 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.MysqlPort3306MySQL 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.

SettingDefaultWhat it does
Scoring.PlayerKill25Points for killing an enemy player.
Scoring.PlayerDeathPenalty25Points a tribe loses when one of its players is killed.
Scoring.TamedDinoKill10Points for killing an enemy tame.
Scoring.TamedDinoLossPenalty10Points a tribe loses when one of its tames is killed.
Scoring.StructureDestroy2Points for destroying an enemy structure that no override below matches.
Scoring.StructureLossPenalty2Points a tribe loses for one of its structures that no override matches.

Scoring rules

SettingDefaultWhat it does
Scoring.ScoreCollapsedStructuresfalseCredits structures that fall as a result of a destroyed load-bearing piece.
Scoring.CountAlliedAsEnemyfalseScores kills between allied tribes as if they were enemies. For servers where alliances are not binding.
Scoring.AllowNegativeScorestrueLets 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.TransferPointsOnTribeMergefalseWhen 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

Without it, only directly damaged structures score — a large raid can count a small fraction of what actually fell. Turning it on can multiply raid totals several times over. Point values tuned under the old behaviour are worth revisiting afterwards.

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.

MatchDefault points
Tek turret75
Heavy turret50
Plant Species X turret5
Generic turret25
Tek15
Metal8
Stone4
Wood2
Thatch1

Scoring.StructureOverrides holds the built-in list above; Scoring.CustomStructureOverrides is yours. Each entry takes a Match and a Destroy and Loss value:

json
"CustomStructureOverrides": [
    { "Match": "Vault",        "Destroy": 40,  "Loss": 40  },
    { "Match": "TekGenerator", "Destroy": 100, "Loss": 100 }
]
  • Match is 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 Destroy or Loss and 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

The defaults are a placeholder economy, not a balanced one. Tune them to your server before treating the board as competitive.

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:

ValueWhat 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

Changing how tribes are recognised changes where future points land. On a server that already has scores, set TribeIdentity to the mode it is using now rather than leaving it on Auto.

ClusterSync integration

SettingDefaultWhat it does
ClusterSync.EnabledtrueLooks 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.

SettingDefaultWhat it does
CustomDinoEvents.EnabledfalseSwitches event creature scoring on.
CustomDinoEvents.EventDinoKill15Points for killing an event creature.
CustomDinoEvents.EventDinoTame40Points for taming one. Higher than a kill by default, since taming takes longer and is harder to defend.
CustomDinoEvents.ProfilePointsApex 30 / 75, Ascended 15 / 40Kill 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.
json
"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.PublishEventApi on, 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

Every map writes to the same scoreboard, so a single map with event scoring on quietly advantages the tribes that play there.

Point popups

SettingDefaultWhat it does
PointPopups.EnabledtrueMaster switch. false also removes the /score command.
PointPopups.DefaultOntrueWhat a player who has never used /score sees.
PointPopups.ShareWithTribetrueSends the popup to every online tribe member rather than only the killer. Each member still honours their own /score setting.
PointPopups.ShareRadius20000Skips 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.DisplayScale0.5Popup text size.
PointPopups.DisplaySeconds2.0How long each popup stays on screen.
PointPopups.RiseSpeed40.0How quickly the popup drifts upward.
PointPopups.FadeOutTime0.5How long the popup takes to fade away.
PointPopups.Colorgreen[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.

PlaceholderBecomes
{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

SettingDefaultWhat it does
Leaderboard.WebhookUrl—The Discord webhook the board posts to. Set it on every map, not only one.
Leaderboard.PostLeaderboardtrueWhether 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.IntervalMinutes60How often the board posts. Must match across every map in the cluster.
Leaderboard.TopCount15How 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.EmbedColor3066993Colour of the post's accent bar, as a decimal number. The default is green.
Leaderboard.EventLogRetentionDays30How 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.