Skip to content
NordBots.
Back to PlaytimeRewards

PlaytimeRewards configuration

The PlaytimeRewards config.json controls how the plugin runs on your Ark Survival Ascended server. Every setting is listed below with what it does and its default value.

Open the configuration editorPrefer clicking to typing? Build the file with sliders and toggles.

Where it lives

Drop the file on your server at ArkApi/Plugins/PlaytimeRewards/config.json then reload the plugin or restart the server. Keep a backup before large changes.

Every setting

General

Debug
togglefalse
Debug: flip to true for extra chatter in ArkApi.log while you sort things out. Keep it false day to day.
SaveCounterSeconds
number60
SaveCounterSeconds: how often the running counters are written to the database, in seconds. 60 means a crash loses at most one minute of progress per player. Smaller saves more often.

Commands

Commands: what folks type in chat to call these up. Change a word if you like, or blank one out to hide it.

PlaytimeCMD
text"/playtime"
show your time played, points earned, and time to next reward.
TopCMD
text"/playtimetop"
show the players with the most time on the server.

Rewards

Rewards: the payout rules.

IntervalMinutes
number30
IntervalMinutes: how many minutes a player must be online to earn one payout. 30 means a reward every half hour of play.
RewardPoints
number100
RewardPoints: the base points paid at each interval. 100 means 100 points every interval.
GroupMultiplier
group
GroupMultiplier: a boost for players in a Permissions group. The key is the group name and the value is how much to multiply the payout. { "VIP": 2.0 } pays VIP players double. A player in more than one listed group gets the biggest boost. Needs Permissions.dll. If it is missing, everyone earns the base rate.
VIP
number2
MaxMultiplier
number5
MaxMultiplier: a cap on the boost above, so a stack of groups can not print money. 5.0 means no one earns more than five times the base, no matter their groups.
OnlyRewardIfMoving
togglefalse
OnlyRewardIfMoving: set to true to block AFK farming. A player who stands still earns no time toward a reward. Set to false to pay for any time online. Off by default.
IdleMoveThreshold
number100
IdleMoveThreshold: how far a player must move each second to count as active, in game units. Only used when OnlyRewardIfMoving is true. 100 is a small step. A bigger number needs more real movement to count.
AnnounceReward
toggletrue
AnnounceReward: set to true to tell a player in chat when they earn a payout. Set to false to pay quietly.
ListCount
number10
ListCount: how many rows the /playtimetop leaderboard shows.

Milestones

Milestones: a one time bonus and a server shout when a player passes big hour totals.

Enabled
toggletrue
Enabled: set to true to turn on hour milestones.
Hours
list[10,50,100,500]
Hours and BonusPoints: these two lists line up by position. A player who passes Hours[0] hours online earns BonusPoints[0] points, and so on. Keep both lists the same length.
BonusPoints
list[500,2500,5000,25000]

Permissions

Permissions: needed for the VIP group boost. Needs Permissions.dll.

Enabled
toggletrue
Enabled: true lets the plugin look up groups for the VIP boost. Turn it off, or skip the dll, and everyone just earns the base rate.

ArkShop

ArkShop: the points economy for the payout. Needs ArkShop.dll.

Enabled
toggletrue
Enabled: set to true to pay points through ArkShop. If off or missing, time is still tracked but no points are paid.

Discord

Discord: optional posts for hour milestones.

Enabled
togglefalse
Enabled: true starts sending milestone posts over to Discord. Leave it false and they stay in game only.
WebhookURL
textempty
WebhookURL: drop in the webhook link for the Discord channel you want posts to land in.
Username
text"PlaytimeRewards"
Username: the name shown on each Discord post.
ServerName
text"My ARK Server"
ServerName: the name in the footer line. Fill in your server name.

Database

Database: where lifetime totals are saved. SQLite needs no setup. MySQL can share across servers.

UseMySQL
togglefalse
UseMySQL: false for a local SQLite file (zero setup), true for a MySQL server.
SQLiteDatabasePath
textempty
SQLiteDatabasePath: used only when UseMySQL is false. Leave "" to keep the file beside the plugin as PlaytimeRewards.db.
TableName
text"PlaytimeRewards"
TableName: the table the totals live in.
Host
text"127.0.0.1"
These only apply if UseMySQL is on.
Port
number3306
User
textempty
Password
textempty
Database
textempty
MysqlSSLMode
number-1
MysqlTLSVersion
textempty

The full commented config

This is a reading copy with notes. It is not valid JSON, so do not load it. Use the editor or the plain config.json instead.

{
  // PlaytimeRewards notes. Every setting in config.json is walked through below.
  // The notes make this file break JSON, so the server can not read it. That is fine.
  // Make your real changes over in config.json.

  "General": {
    // Debug: flip to true for extra chatter in ArkApi.log while you sort things out. Keep it false day to day.
    "Debug": false,

    // SaveCounterSeconds: how often the running counters are written to the database, in seconds.
    // 60 means a crash loses at most one minute of progress per player. Smaller saves more often.
    "SaveCounterSeconds": 60
  },

  // Commands: what folks type in chat to call these up. Change a word if you like, or blank one out to hide it.
  "Commands": {
    "PlaytimeCMD": "/playtime",     // show your time played, points earned, and time to next reward.
    "TopCMD": "/playtimetop"        // show the players with the most time on the server.
  },

  // Rewards: the payout rules.
  "Rewards": {
    // IntervalMinutes: how many minutes a player must be online to earn one payout. 30 means a
    // reward every half hour of play.
    "IntervalMinutes": 30,

    // RewardPoints: the base points paid at each interval. 100 means 100 points every interval.
    "RewardPoints": 100,

    // GroupMultiplier: a boost for players in a Permissions group. The key is the group name and
    // the value is how much to multiply the payout. { "VIP": 2.0 } pays VIP players double. A
    // player in more than one listed group gets the biggest boost. Needs Permissions.dll. If it
    // is missing, everyone earns the base rate.
    "GroupMultiplier": { "VIP": 2.0 },

    // MaxMultiplier: a cap on the boost above, so a stack of groups can not print money. 5.0 means
    // no one earns more than five times the base, no matter their groups.
    "MaxMultiplier": 5.0,

    // OnlyRewardIfMoving: set to true to block AFK farming. A player who stands still earns no
    // time toward a reward. Set to false to pay for any time online. Off by default.
    "OnlyRewardIfMoving": false,

    // IdleMoveThreshold: how far a player must move each second to count as active, in game units.
    // Only used when OnlyRewardIfMoving is true. 100 is a small step. A bigger number needs more
    // real movement to count.
    "IdleMoveThreshold": 100.0,

    // AnnounceReward: set to true to tell a player in chat when they earn a payout. Set to false
    // to pay quietly.
    "AnnounceReward": true,

    // ListCount: how many rows the /playtimetop leaderboard shows.
    "ListCount": 10
  },

  // Milestones: a one time bonus and a server shout when a player passes big hour totals.
  "Milestones": {
    // Enabled: set to true to turn on hour milestones.
    "Enabled": true,

    // Hours and BonusPoints: these two lists line up by position. A player who passes Hours[0]
    // hours online earns BonusPoints[0] points, and so on. Keep both lists the same length.
    "Hours": [10, 50, 100, 500],
    "BonusPoints": [500, 2500, 5000, 25000]
  },

  // Permissions: needed for the VIP group boost. Needs Permissions.dll.
  "Permissions": {
    // Enabled: true lets the plugin look up groups for the VIP boost. Turn it off, or skip the dll,
    // and everyone just earns the base rate.
    "Enabled": true
  },

  // ArkShop: the points economy for the payout. Needs ArkShop.dll.
  "ArkShop": {
    // Enabled: set to true to pay points through ArkShop. If off or missing, time is still tracked
    // but no points are paid.
    "Enabled": true
  },

  // Discord: optional posts for hour milestones.
  "Discord": {
    // Enabled: true starts sending milestone posts over to Discord. Leave it false and they stay in game only.
    "Enabled": false,

    // WebhookURL: drop in the webhook link for the Discord channel you want posts to land in.
    "WebhookURL": "",

    // Username: the name shown on each Discord post.
    "Username": "PlaytimeRewards",

    // ServerName: the name in the footer line. Fill in your server name.
    "ServerName": "My ARK Server"
  },

  // Database: where lifetime totals are saved. SQLite needs no setup. MySQL can share across servers.
  "Database": {
    // UseMySQL: false for a local SQLite file (zero setup), true for a MySQL server.
    "UseMySQL": false,

    // SQLiteDatabasePath: used only when UseMySQL is false. Leave "" to keep the file beside the
    // plugin as PlaytimeRewards.db.
    "SQLiteDatabasePath": "",

    // TableName: the table the totals live in.
    "TableName": "PlaytimeRewards",

    // These only apply if UseMySQL is on.
    "Host": "127.0.0.1",
    "Port": 3306,
    "User": "",
    "Password": "",
    "Database": "",
    "MysqlSSLMode": -1,
    "MysqlTLSVersion": ""
  }
}