Control which faction ranks can access the DPMR dashboard and userscript. Enter ranks as comma-separated values (case-insensitive).
Settings that affect how recruit messages compare DP Medics against other factions.
Weights for each component of the overall composite grade. Set to 0 to exclude a component.
Per-metric grade cutoffs. Evaluated top-down — F is the fallthrough when no threshold matches.
| Grade | Op | Value |
|---|
| Grade | Op | Value |
|---|
| Grade | Op | Value |
|---|
Grades players under a configurable age threshold based on activity, xan use, property type, and donator status. Each component is weighted to produce a composite "Potential" grade.
Applied to the final weighted score (0–10 scale). F is the fallthrough.
| Grade | Op | Score |
|---|
Evaluated top-down. First matching threshold awards its points. No match = 0.
| Points | Op | Value |
|---|
Evaluated top-down. First matching threshold awards its points. No match = 0.
| Points | Op | Value |
|---|
| Property | Points |
|---|
| Status | Points |
|---|
Controls how percentile rankings are computed and colored in the recruit helper panel.
| Tier | Op | Top % |
|---|
| Grade | Op | Top % |
|---|
Removes war participant rows for players no longer in the faction, and rows where all stats are empty.
Growth is scored as ln(curr/prev) ÷ ln(curr_total) — normalising the log growth ratio by the log of the player's current total stats. This means high-stat players are benchmarked relative to their stat magnitude rather than competing directly with lower-stat players who can grow faster. Grades are assigned relative to the median/mean score of all positive growers that month.
Or choose a CSV file to upload historical stats manually. Columns will be detected automatically and you can map them to the battle stats fields. Non-faction members are dropped. Duplicates are skipped.
| CSV Column | Maps To | Sample |
|---|
Grades are assigned relative to a Benchmark computed from all participants in the same war. The Benchmark grade and metric are configurable — all other grades scale by % distance above or below it.
Controls how hits and assists contribute to War Score. Default is 1.0 for both (equal weight).
Independent weights for the Effectiveness metric. Exponent controls how strongly high performers are amplified (default 2 = offense²).
Mark a past war as "termed" to grade members against explicit expectations (e.g. ≥18 hits and ≥200 score) instead of the per-war benchmark. The term grade replaces the regular war grade everywhere it's shown.
| War | Opponent | Date | Result | Termed | Config |
|---|
Each row is a condition the player must meet. The grade rules below decide a player's grade based on how many they met.
| Metric | Op | Value |
|---|
Evaluated highest priority first. A rule matches when the player has met at least Min Met expectations. Min Met % sets how strict "met" is for this rule (default 100 = must fully meet; e.g. 50 = half-credit counts as met). If Exceed % is set, every met expectation must also clear its threshold by that percent.
| Grade | Min Met | Min Met % | Exceed % (optional) | Priority |
|---|
Manage faction member performance scanning.
Requeue — forces a rescan of all members. Refresh Roster — re-fetches the faction member list to update who shows on Performance/Insights.
Crawl faction news to populate join/leave/kick history. Goes back up to 1 year, 100 events per request. Uses TORN_FACTION_KEY.
Tracks how long faction members are away by polling their last action time. Builds a dataset of each member's Average Away Gap over time.
Poll Interval — how often to check the Torn API for last action updates (uses 1 API call per poll).
Retention — how many days of activity data to keep before pruning.
Min Away Threshold — only count gaps longer than this as "away" periods. Gaps under this are considered normal active play and ignored.
Grade is assigned based on a member's average away gap. Lower = more active.
Used to authenticate the Torn Search Scraper userscript with DPMR. Keep this private.
Used by external apps (e.g. Discord bot) to submit war data programmatically. Keep this private.
POST /api/integration/war-data
Authorization: Bearer <integration-key>
Content-Type: application/json
{
"warId": 12345,
"participants": [
{
"Member ID": "3919218",
"Member Name": "PlayerName",
"Level": 50,
"Total Attempts": 30,
"Total Wins": 25,
"War Wins": 18,
"Assists": 5,
"Outside Wins": 2,
"Escapes/Lost": 7,
"Outside Losses": 1,
"Defends": 8,
"Defends Won": 4,
"War Hits": 20,
"Outside Hits": 3,
"Respect Gained": 15.5,
"Respect Lost": 2.5,
"Score Contribution": 45
}
]
}
| Player ↕ | Date ↕ | Str ↕ | Def ↕ | Spd ↕ | Dex ↕ | Total ↕ |
|---|