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.
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": ""
}
}