b0torn
Free 7-day trial for every faction

Run your faction
like a pro.

b0torn is a Discord bot built for Torn factions. Get ranked war reports with fair payouts, a banking system for vault withdrawals, war rollcall, opponent scouting, and more. No coding or servers needed — just add the bot and go.

📊
War Reports
Generate a detailed ranked war report with fair payout calculations, sent as a spreadsheet.
🏦
Faction Banking
Members request money from the vault, bankers get notified and pay with one click.
📋
War Rollcall
Before a war, send a rollcall so members can confirm if they're in or unavailable.
📈
Opponent Scouting
See when the enemy faction is most active so you can plan your attacks.
👥
Member Lists
Quickly check who's online, in hospital, flying, inactive, or missing from Discord.
🔫
OC Tracking
Find out which faction members aren't assigned to an Organized Crime yet.
🔍
Member Lookup
Score any Torn player from 0–100 across 10 categories to evaluate recruits or check standings.
📊
Activity Tracking
Hourly polling tracks each member's war, chain, OC, and online activity with trend reports.
🧩
Browser Userscript
Adds a b0torn menu to every Torn faction page: a sortable spy-stats column on the members list, and assisted war payouts that arm each payment for you — you still press Torn's own CONFIRM.
💰
Bounty List
A live page of members who are idle or offline, quiet for 30 minutes, and carrying no bounty big enough for their level. One tap opens Torn's add-bounty form — and greys the name out for everyone, so nobody pays twice.
🏰
Faction Families
Run several factions from one Discord. Each keeps its own vault, wars and payouts, while family admins switch between them — read-only across siblings, so nobody credits the wrong vault by accident.
⚔️
Live War Stats
A war board that refreshes itself every 30 seconds: hits, eligible respect, assists and net score per member, live chains for both sides, and who is online, hospitalised or carrying a bounty right now.
Quick guide for faction members
You don't need to be a leader or admin to use these commands. Every faction member can use them right away in Discord.

🏦 Banking

1

/bank balance

Check how much money you have stored in the faction vault.

2

/bank withdraw

Request a withdrawal from the vault. A banker will be pinged and can send your money with one click.

3

/bank register-reimbursement

Bought something for the faction? Submit an expense to get paid back. A ticket will be created for leadership to review.

📋 War Rollcall

1

Open the rollcall link

When a war is coming, the bot posts a rollcall in Discord with a link to a web page.

2

Pick your availability

Select your name, choose "I'm in", "Self Hosp", or "Need Bounty", and optionally leave a comment.

3

Termed wars

If the war is termed, the page switches to a med-out partner picker instead. Choose a partner from the opponent faction so everyone can coordinate.

🔍 Member Lookup & Activity

1

/member lookup

Score any Torn player from 0–100 across 10 categories like attacks, OCs, networth, and more.

2

/member activity

See how active a faction member has been over the last 7 days — war hits, chains, OCs, and online presence.

Generate ranked war reports in seconds
The bot pulls all ranked war data, filters out non-war hits, and creates a clean spreadsheet with stats and payouts for every member.

What's in the report?

Per-member stats

Attacks, respect gained/lost, assists, and net score for every member.

Fair payouts

Choose how to split the money. Every dollar is accounted for — no rounding errors.

Xanax usage

See who took Xanax from the armory before and during the war, plus cost estimates.

Bonus hit filtering: Chain milestone hits (bonus hits) are automatically removed so payouts reflect real effort.

Commands

📊
/war-report run Generate a war report
Everyone

Creates a full ranked war report and uploads the spreadsheet to Discord. You need to tell it when the war started and ended.

start required When the war started — use Torn time, e.g. 20:00:00 - 01/02/26
end required When the war ended — same format as start
war_id optional If you want a specific war. Leave blank for the most recent one.
payment_mode optional Override how payouts are split (see payment settings below)
total_payment optional Override the payout pool for this report only
min_respect optional Minimum respect per hit to count for payment
include_attack_list optional Set to true to include every attack in the spreadsheet
exclude_ids optional Torn player IDs to exclude from payouts (comma-separated)
/war-report run start:"20:00:00 - 01/02/26" end:"20:00:00 - 02/02/26"
💰
/war-report set-payment-mode Choose how payouts are calculated
Everyone

Pick how the money pool gets divided between members:

offNo payouts — stats only
per-hitEveryone gets paid the same per attack
per-respect-gainedMore respect earned = bigger share
per-respect-netBased on net respect (gained minus lost) — bleeders get nothing
💵
/war-report set-total-payment Set the money pool to split
Everyone

Set the total amount of money that will be divided among members, e.g. 25000000 for $25M.

📐
/war-report set-min-respect Set a minimum respect threshold
Everyone

Only count hits that earned at least this much respect. Useful for filtering out low-effort attacks.

⏱️
/war-report set-max-respect-window Time-limit the respect cap
Everyone

Makes your /war-report set-max-respect cap apply only during the opening hours of the war. Set how many hours from war start the cap is active: inside that window, once a member reaches the respect cap their extra hits stop counting toward payout — but any hits landed after the window always count in full.

0Cap applies to the whole war (no time limit)
6Cap only limits hits in the first 6 hours; later hits are uncapped
/war-report set-max-respect-window hours:6
💊
/war-report set-bonus-hit-respect Credit bonus hits a flat respect value
Everyone

Bonus (chain milestone) hits are normally thrown out of the report. Turn this on to count each one as a flat respect value instead — it's then treated as a normal eligible hit (still subject to min-respect and your caps). Set to 0 to keep excluding bonus hits.

0Bonus hits are excluded (default)
10Each bonus hit counts as 10 respect toward pay
/war-report set-bonus-hit-respect value:10
🔗
/war-report set-count-chain-saves Always count chain-save hits
Everyone

When on, any hit that keeps the chain alive — one landed with under 1 minute left on the 5-minute chain timer — is always counted as an eligible hit, even if it's below your min-respect or over your caps. Rewards the clutch saves regardless of any cap.

TrueChain-save hits always count for payout
FalseChain-save hits follow the normal rules (default)
/war-report set-count-chain-saves enabled:True
🤝
/war-report set-assist-payment Configure assist payouts
Everyone

Choose how to reward members who assisted on attacks:

0 or offNo assist payouts
200000Fixed pool — $200K split between all assists
1%1% of the total payout pool goes to assists
50000pa$50K per assist (fixed amount each)
ℹ️
/status See your current settings
Everyone

Shows all bot settings for your server — faction info, war report settings, banking, rollcall, and subscription status. Works in any channel. Your API key is never shown.

b0torn Userscript — pay members fast

After generating a report, use this browser script to speed up payments on torn.com. You still confirm every payment manually — it just arms the next one. The same script adds a spy-stats column to any faction's member list.

1

Install the script

Click the button below. Requires Tampermonkey (Chrome/Edge) or Violentmonkey (Firefox). Installing from this link is what lets it update itself later.

2

Go to Faction → Controls → Give money

Open the give-to-user page on torn.com.

3

Paste the payment list

Open the b0torn menu in Torn's toolbar, choose Payouts, and paste the JSON from the war report spreadsheet.

4

Confirm each payment

Click Torn's CONFIRM button. After each one, the next payment loads automatically. An ID that no longer resolves is set aside and reported at the end instead of stopping the run.

Install b0torn Userscript

What it looks like

War report in Discord
Discord message
War summary with stats.
b0torn menu button
b0torn menu
Payouts, settings, sign-in.
b0torn payout panel
Payout panel
Paste payouts, confirm payments.
Faction vault, right from Discord
Members check their balance and request withdrawals. Bankers get a notification and can pay with one click.

How it works for members

1

Check your balance

Type /bank balance to see how much you have in the vault.

2

Request a withdrawal

Type /bank withdraw — you can specify an amount or leave it blank for everything.

3

A banker gets pinged

Your request shows up in the banking channel and the banker role gets notified.

How it works for bankers

1

Get notified

When someone requests money, you'll see it in the banking channel.

2

Click "Fulfill"

A link opens torn.com with the member and amount already filled in.

3

Request updates

The message in Discord changes to show it's been fulfilled.

Commands

💰
/bank balance Check your vault balance
Everyone

Shows how much money you have in the faction vault. Your Discord account needs to be linked to Torn.

🏧
/bank withdraw Request money from the vault
Everyone

Sends a withdrawal request to your faction's bankers. They'll get a notification and can fulfill it with one click.

amount optional How much to withdraw. Leave blank to request your full balance.
timeout_minutes optional How long the request stays active (default: 20 min, max: 60 min).
🧾
/bank register-reimbursement Submit an expense for the faction to pay back
Everyone

Did you buy something for the faction? (OC items, bounties, supplies, etc.) Submit it here and a private ticket will be created for you and the bankers.

amount required How much the faction owes you
reason required What the expense was for (max 500 characters)
📌
/admin set-banker-channel Choose where banking requests appear
Admin only

Run this in the channel where you want withdrawal requests to be posted. Bankers will see all requests there.

👤
/admin set-banker-role Choose which role gets pinged
Admin only

Set the Discord role that should be notified when someone requests a withdrawal or reimbursement.

role required The Discord role to ping (e.g. "Banker")
Note: The bot needs View Channel and Send Messages permission in the banking channel. For reimbursement tickets, it also needs Manage Channels.
Reimbursement tickets: Create a Discord category called Reimbursements and give the b0torn bot full access to it (View Channels, Send Messages, Manage Channels, Read Message History). Reimbursement tickets will be created as new channels inside this category.
Keep tabs on your faction
Quick commands to see who's online, in hospital, inactive, or missing from Discord and OCs.
🟢
/faction members online Who's online right now
Everyone

Lists all faction members currently online, sorted alphabetically.

/faction members offline Who's offline
Everyone

Lists all faction members currently offline.

/faction members okay Who has "okay" status
Everyone

Lists all members with the "okay" status — ready for action.

✈️
/faction members flying Who's traveling or abroad
Everyone

Lists all members who are currently traveling, flying, or abroad.

🏥
/faction members hospital Who's in hospital
Everyone

Lists all members currently in the hospital.

💊
/faction members revivable Who can be revived
Everyone

Lists everyone who can be revived right now. If a member has a linked Discord account and is in the server, they'll be pinged in the output. May take up to a minute for large factions.

😴
/faction members inactive Who hasn't been active
Everyone

Lists members who haven't done anything in Torn for a while. Great for finding members who might need a check-in.

days optional How many days of inactivity to look for (default: 1, range: 1–365)
💬
/faction members discord Who's missing from Discord
Everyone

Shows which faction members aren't in your Discord server. Gives a summary of how many are linked, in server, and missing. May take up to a minute for large factions.

💊
/faction members xanax Average Xanax per day per member
Everyone

Shows each member's average Xanax taken per day, split into how much came from their own stash versus the faction armory. The bot tracks this over time and backfills a week of history the first time it runs, so it works right away.

days optional Averaging window in days (default: 7, max: 45)
🔫
/faction crimes missing-members Who's not in an OC
Everyone

Lists faction members not currently in any Organized Crime. Members with Federal status are automatically excluded.

Individual Member Tools

🔍
/member lookup Faction-value score for any player
Everyone

Score any Torn player from 0–100 based on 10 categories like level, attacks, OCs, networth, and more. Great for evaluating recruits. Takes a few seconds to gather data.

torn_id required The Torn user ID to look up
📊
/member activity Activity report for a member
Everyone

See how active a faction member has been — war hits, chains, OCs, and online presence over the last 7 days, with a trend indicator showing if they're improving or declining.

Note: b0torn needs at least a few hours of background data before activity scores are available.
torn_id required The Torn user ID to check activity for
Prepare for war and scout the enemy
Rollcall to confirm who's fighting, and activity charts to find the opponent's weak hours.

How rollcall works

Before a ranked war, the bot posts a message where members can click a button to say if they're available. Leadership can then see exactly who's in.

I'm in!

Ready to fight

🏥
Self-hosp / Travel

Can't participate

💀
Need bounty

Needs to be put in hospital

Members can also respond via a web link — useful for those who aren't in Discord.

💬 Comments

Members can leave an optional comment when they respond — for example "Available after 20:00 TCT" or "On holiday until Friday". Comments show up in the rollcall table for leadership to see.

⚔️ Termed Wars & Med-Out Partners

If leadership marks a war as termed (a pre-arranged outcome), the rollcall page switches to a completely different mode. Instead of voting "I'm in" or "Need bounty", members only see a dropdown to pick their med-out partner from the opponent faction. The bot also posts an announcement in the rollcall channel telling everyone the war is termed and to check the newsletter for details.

Commands

📋
/war-tools send-rollcall Start a rollcall for the upcoming war
Everyone

Posts an interactive message with buttons so members can confirm their availability. Shows a live count as people respond.

If auto-rollcall is turned on, this command is disabled to prevent duplicate posts.
📊
/war-tools rollcall-report See who responded and who didn't
Leadership

Generates a summary: who's in, who needs bounty, and — most importantly — who hasn't answered yet.

📈
/war-tools activity See when the enemy is active
Everyone

Shows a visual chart of when the opponent faction is most active over the last 100 hours. Helps you figure out their timezone and plan attacks for when they're sleeping.

Rollcall settings (admin)

🔄
/admin auto-rollcall Turn automatic rollcalls on or off
Admin only

When enabled, the bot will automatically post a rollcall before ranked wars — no need to trigger it manually.

enabled required true = automatic, false = manual only
📌
/admin set-rollcall-channel Choose where rollcalls appear
Admin only

Set which channel rollcall messages are posted in.

channel required The Discord channel to use
👑
/admin set-leadership-role Choose which role gets pinged for rollcalls
Admin only

Set the role that gets notified when a rollcall is posted (e.g. "Leadership", "War Council").

role required The Discord role to ping
⚔️
/admin set-termed-war Mark the current war as termed (pre-arranged)
Admin only

When a war is "termed", both factions agree on the outcome beforehand. Enabling this switches the rollcall web page to med-out partner mode — the availability voting is replaced with a dropdown where each member picks their partner from the enemy faction. The bot also announces in the rollcall channel that the war is termed.

termed required true = termed war (show partner picker), false = normal war
Get started in 5 minutes
No coding, no server, no downloads. Just add the bot to your Discord and follow these steps.
Only step 1 has to happen in Discord. Once the bot is in your server you can do the rest on the control panel, where every setting is on one page with its current value next to it. The steps below are the Discord route; both end up in the same place.
1

Add the bot to your Discord server

Click the "Add to your Discord" button at the top of this page. Pick your faction's server and confirm.

2

Enter your Torn API key

Type /admin set-api-key and paste your Torn API key. This lets the bot access Torn data for your faction.

Where to get your API key: Go to Torn Settings → API Key. A "Limited" key is enough for most features.
3

Pick a channel for war reports

Go to the channel you want and type /admin set-war-report-channel. Reports will only work in that channel.

4

Set up banking (optional)

Go to your banking channel and type /admin set-banker-channel, then /admin set-banker-role to choose which role gets pinged for withdrawals.

5

Configure payouts (optional)

Customize how war payouts work with these commands:

/war-report set-payment-mode — how to split the money
/war-report set-total-payment — how much money to split
/war-report set-assist-payment — whether to pay for assists

6

Set up rollcall (optional)

/admin set-rollcall-channel — where rollcall messages appear
/admin set-leadership-role — who gets pinged
/admin auto-rollcall — turn automatic rollcalls on/off
/admin set-termed-war — mark a war as termed (enables med-out partner picker)

🎉

You're all set!

Generate your first report with /war-report run or check your faction with /faction members online.

Multi-Faction Families

If your faction has a family — multiple factions under the same leadership — you can manage them all from one Discord server. Every feature (rollcall, war reports, activity tracking, member commands) works independently per faction. When you run a command, you can pick which faction to target.

Single Faction (default)
/admin set-api-key <key>
That's it — the bot is ready. All commands use this faction automatically.
Family (multi-faction)
/admin add-faction <key> Main
/admin add-faction <key> Academy
/admin add-faction <key> Farm
Each faction gets its own label. The first one added becomes the primary.

Family Commands

/admin add-faction <api_key> <label> — Add a faction with a label (e.g. "Main", "Academy")
/admin remove-faction <faction> — Remove a faction by label or ID
/admin set-main-faction <faction> — Change which faction is the default for all commands
/admin list-factions — Show all factions and which is primary
Using commands with multiple factions: Most commands have an optional faction: parameter with autocomplete. If you don't specify it, the primary faction is used. Example: /war-report run start:... end:... faction:Academy
Backwards compatible: If you only have one faction, everything works exactly like before. The multi-faction system is fully optional.

Who can use what?

Everyone

War reports, banking, member lists, rollcall, activity charts, OC tracking, and status checks.

Admins

Setting the API key, choosing channels and roles, configuring rollcall automation. Requires "Admin" or "Manage Server" in Discord.

Leadership

Rollcall reports (seeing who answered). Requires "Admin" or "Manage Server" in Discord.

What the bot needs from Discord

The invite link already requests the right permissions, but if something isn't working, make sure the bot has these in the channels it uses:

View Channel Send Messages Embed Links Attach Files Use Slash Commands Manage Channels

Subscription

Free trial

Every faction gets 7 days free starting from the first time you use the bot. No payment info needed.

$

After the trial: 1 Xanax per week

Send Xanax to B0rjara [2799302] with the message "b0torn". You can send multiple Xanax at once for multiple weeks.

Automatic activation

Payments are detected automatically — no need to message anyone or wait for manual activation.

Faction families: If you run a multi-faction family, each faction needs its own subscription. Send 1 Xanax per week per faction — include the faction name or ID in the message so payments are applied correctly.

All admin commands at a glance

🔑
/admin set-api-key Connect the bot to your faction
Admin only

Paste your Torn API key. This is required for everything — war reports, banking, member lists, etc. The key is stored securely and never shown.

📌
/admin set-war-report-channel Lock war reports to one channel
Admin only

Run in the channel you want. All war report commands will only work there.

📌
/admin set-banker-channel Set the banking channel
Admin only

Run in the channel where banking requests should appear.

👤
/admin set-banker-role Set who gets pinged for banking
Admin only

Choose the Discord role that gets notified for withdrawal and reimbursement requests.

📌
/admin set-rollcall-channel Set the rollcall channel
Admin only

Choose where rollcall messages are posted.

👑
/admin set-leadership-role Set who gets pinged for rollcalls
Admin only

Choose the role that gets notified when a rollcall is posted.

🔄
/admin auto-rollcall Turn automatic rollcalls on/off
Admin only

Enable = the bot posts rollcalls before wars automatically. Disable = manual only.

⚔️
/admin set-termed-war Mark war as termed
Admin only

Switches the rollcall to med-out partner mode and announces in the rollcall channel that the war is termed.

Every command

66 commands, read straight out of the bot. Type / in any channel b0torn can see and Discord will autocomplete them for you.

Most of this can also be done on the control panel without typing anything, and setup is genuinely easier there. Commands are the quick way when you are already in Discord.

📊War reports & payouts

Build the ranked war spreadsheet and decide how the payout is split. The set- commands are remembered per faction, so you configure them once and every later report follows them.

/war-report runEveryone
Generate ranked war report CSV and upload it in this channel.
startendwar_idpayment_modemin_respecttotal_paymentfaction_cutleadership_cutinclude_attack_listexclude_idsfaction
/war-report set-assist-paymentEveryone
Set assist payout: 0/off, fixed pool, %, or per-assist (e.g. 200k, 1%, 50kpa).
value
/war-report set-bonus-hit-respectEveryone
Count each bonus (chain milestone) hit as a flat respect value (0 = don't count bonus hits).
value
/war-report set-count-chain-savesEveryone
Always count chain-save hits (landed with <1 min on the chain timer) as eligible.
enabled
/war-report set-max-hitsEveryone
Set max eligible hits per member per war for payout (0 = no cap).
value
/war-report set-max-respectEveryone
Set max total eligible respect per member for payout (0 = no cap).
value
/war-report set-max-respect-windowEveryone
Limit the max-respect cap to the first N hours of the war (0 = whole war).
hours
/war-report set-min-respectEveryone
Set min respect per hit for min-respect mode.
value
/war-report set-payment-modeEveryone
Set payment mode: off|per-hit|per-respect-gained|per-respect-net.
mode
/war-report set-total-paymentEveryone
Set total payment pool distributed (integer).
amount

War tools & rollcall

Getting the faction ready before the war starts, and finding out who actually answered.

/war-tools activityEveryone
Faction activity comparison (last 100h, 24h clock)
faction
/war-tools activity-betaEveryone
BETA: pre-war activity heatmap, your faction vs opponent (7x24 TCT, last ~100h)
faction
/war-tools energyEveryone
Current energy per member (needs their saved key)
factionrefresh
/war-tools rollcall-reportLeadership
Generate bounty + no-answer lists for the current rollcall.
faction
/war-tools send-rollcallEveryone
Start a rollcall for the upcoming ranked war.
faction

🏦Banking

Members ask for their own vault money without a banker having to read the whole vault log.

/bank balanceEveryone
Show your current faction vault balance.
/bank register-reimbursementEveryone
Register an expense the faction should reimburse (creates a private ticket).
amountreason
/bank withdrawEveryone
Request a withdrawal from your faction vault.
amounttimeout_minutes

👥Member lists

Who is online, who is hospitalised, who is abroad, who never showed up for the last OC. Every one of these takes an optional faction option on a server that runs more than one faction.

/faction crimes missing-membersEveryone
List members not in an OC
faction
/faction members discordEveryone
Lists members not in the Discord server
faction
/faction members flyingEveryone
Lists flying/abroad members
faction
/faction members hospitalEveryone
Lists hospitalized members
faction
/faction members inactiveEveryone
Lists inactive members
daysfaction
/faction members offlineEveryone
Lists offline members
faction
/faction members okayEveryone
Lists okay members
faction
/faction members onlineEveryone
Lists online members
faction
/faction members revivableEveryone
Lists revivable members
factionping
/faction members xanaxEveryone
Average Xanax taken per day per member (own vs faction armory)
daysfaction

🔍Individual members

Everything the bot knows about one player.

/member activityEveryone
Activity report for a faction member (wars, chains, OCs)
torn_idfaction
/member lookupEveryone
Lookup a player and generate a faction-value score
torn_idfaction

🛰Scouting

Intelligence on factions you are not in — usually the one you are about to be matched against.

/scout activityEveryone
Activity heatmap for a faction (% online per hour/day)
faction_idweeks
/scout compareEveryone
Compare activity between two factions
faction_idfaction_b_idweeksfaction
/scout profileEveryone
Faction overview: rank, members, stats, wars
faction_id
/scout warsEveryone
Recent ranked war history for a faction
faction_idlimit

🔑Scouting accelerator

Scouting reads Torn through contributed API keys. Sharing yours makes everyone's scouting faster and is rewarded in Xanax.

/accelerator add-keyEveryone
Moved — use /me key instead
/accelerator remove-keyEveryone
Remove your OWN contributed API key
torn_id

🪪Your own settings

Register your Torn API key with b0torn without going near the website. The command takes the key and nothing else — your Torn id and name come back from Torn itself — and the reply is only visible to you. A Full Access key is what unlocks running a lottery.

/me forget-keyEveryone
Remove the Torn API key you registered
/me keyEveryone
Register your Torn API key with b0torn — Limited is enough for everything, including lotteries
api_key
/me statusEveryone
What b0torn has on file for you

🎰Xanax lotteries

Anyone with a full access key can run one. Members enter by sending Xanax to you with the lottery's exact entry message on it, and the draw is a wheel of fortune everybody can watch on the control panel. First place takes half the pot, the rest share the other half, and nothing is kept back. Only the person who started a lottery can end or cancel it — or a server admin, if they have gone quiet.

/lottery cancelEveryone
Call your lottery off — everybody is owed a refund.
lottery_id
/lottery check-keyEveryone
Check whether a key can read its own item log, which is what receiving needs.
torn_id
/lottery createEveryone
Start a lottery. You receive the Xanax and pay the winners.
nameticket_pricemax_ticketsdayswinnersentry_messagechannel
/lottery endEveryone
End your lottery now and draw it.
lottery_id
/lottery listEveryone
Show this server's lotteries.
/lottery paidEveryone
Mark a winner as paid.
lottery_idplace
/lottery ticketsEveryone
Correct somebody's tickets on a lottery you run.
lottery_idtorn_idticketsreason

Admin & setup

Anything badged Admin only needs Discord's Manage Server permission; the read-only ones here are open to everyone. Nearly all of this can also be done on the control panel, which is easier — see the Control Panel tab.

/admin add-factionAdmin only
Add a faction to this server (for multi-faction families).
api_keylabelmove
/admin auto-rollcallAdmin only
Enable/disable auto rollcall posting for this server.
enabled
/admin banking-channelsAdmin only
Show where each faction's banking requests are posted.
/admin chain-channelEveryone
Show which channel chain plans are announced in.
/admin check-api-keyAdmin only
Test what the saved Torn API key is allowed to read.
faction
/admin list-factionsAdmin only
Show all factions configured for this server.
/admin remove-factionAdmin only
Remove a faction from this server.
faction
/admin set-api-keyAdmin only
Set Torn API key (Limited) for this server.
api_key
/admin set-armory-channelAdmin only
Set the armory watchlist channel (this channel).
/admin set-banker-channelAdmin only
Set the banking requests channel (this channel).
factionchannel
/admin set-banker-roleAdmin only
Set the banker role to ping for requests.
rolefaction
/admin set-chain-channelAdmin only
Set the channel chain plans are announced in (this channel).
/admin set-leadership-roleAdmin only
Set the role to ping for rollcall reminders.
role
/admin set-lottery-channelEveryone
Set where lottery draws and results are posted.
channel
/admin set-main-factionAdmin only
Set which faction is the primary (default) for commands.
faction
/admin set-rollcall-channelAdmin only
Set the channel where auto rollcalls will be posted.
channel
/admin set-termed-warAdmin only
Mark the current rollcall as a termed war (enables med-out partner selection).
termedtarget_scorefaction
/admin set-war-report-channelAdmin only
Set allowed channel to the current channel.

📋Everything else

/helpEveryone
What b0torn can do, and where to read the full command list.
/statusEveryone
Show current settings for this server (API key hidden).
faction
Options in grey are optional. Hover one to see what it does. On a server running more than one faction, the faction option picks which faction the command answers for — leave it out and it uses the primary faction.
Everything b0torn does, in a browser
The control panel at b0torn.com/cp is the same bot with a screen in front of it. Nothing there is Discord-only and nothing in Discord is panel-only — they read and write the same settings, so you can change a payout rule on the website and /war-report run in Discord will already be following it.
If you are setting the bot up for the first time, do it here. Every setting has its label, its current value and a short note next to it, so you can see the whole configuration at once instead of remembering which /admin set-… command you still owe.

Signing in

1

Sign in with Discord

The quickest way. Your Discord account has to be verified with your Torn account — that's the verification done through the official Torn Discord server, not something b0torn does.

2

…or sign in with your Torn API key

No linked Discord? Paste a Torn API key instead. A Limited key is enough. It confirms which account and faction role you have, and it is kept so the bot can keep your faction's data fresh. You can remove it again at any time from the top bar of the panel.

3

You land on the pages your role allows

Every member of the faction can sign in. Members get war summaries, chains, banking, armory and their own battle stats. Leadership additionally gets the member list, the kick list, report generation and the settings page.

The panel finds your faction through the bot. b0torn has to already be in a Discord server that has your faction configured — sign-in matches you to that faction, it does not create one.

What each page does

The menu on the left is grouped the way a faction actually works. Pages you don't have permission for are simply not shown.

⚔ War

WarsEvery ranked war the faction has fought. Open one for the per-member table — hits, respect, what each person is owed — and sort it by any column. While a war is running the same page shows live contribution and who is hospitalised, travelling or okay. Termed-war targets and manual caps are set here, on the war itself.
ChainsThe chain calendar. Members claim the hours they can cover, you see the spans that are held and the ones that are still empty before the chain starts rather than after it drops.
RaidLive raid rosters, filled in by the poller within about a minute of a raid appearing.

👥 Faction

Battle statsMembers choose to share their own battle stats here. Nobody's stats are read without them sharing, and the menu carries a small add key badge until you have.
MembersLeadership view of the roster. Click a member for their sign-in history, their banking requests and their full activity record.
Hall of ShameWho under-performed in ended untermed wars. Who is allowed to see this page is itself a setting, at the top of the page.
Kick listCandidates for removal, measured against thresholds you set — net respect, hit count, days inactive. Leadership only; members never see the page or the menu link.

💰 Money

BankingVault balances and withdrawal requests. Members request their own money, bankers fulfil it, and the whole thread stays out of the channel.
ArmoryWhere the faction's stock is actually going — usage by item, deposit credits, and a watchlist for the items you care about.

📄 Reports

ReportsRun a war report without touching Discord. The payout rules you have saved are applied automatically and shown above the button, so you can read exactly what is about to be enforced before you generate anything.

⚙ Bottom of the menu

SettingsThe whole configuration, described below. Leadership only.
Sign outEnds the session on this device.

The Settings page, section by section

Each section is collapsed until you open it, so the page stays readable even with everything configured. This is the part that replaces most of the /admin commands.

Your API keyThe Torn key the faction runs on, shown masked. Same thing as /admin set-api-key.
Standard war rulesPayment mode, minimum respect, hit and respect caps, the cap window, bonus-hit respect, chain saves, faction cut, leadership cut and assist payment — every /war-report set-… command on one form, with the current values filled in.
Termed war rulesA second set of the same rules used only for termed wars. Until you set it, termed wars follow the standard rules and the section says so.
Panel accessWhich Discord roles count as leadership for the panel, and who is allowed to see the Hall of Shame.
Feature channelsWhere banking requests, war reports, chain plans, rollcalls and the armory watchlist get posted, which role is pinged for banking, and how long a withdrawal request waits before it times out.
FactionsThe factions on this server, which one is primary, and the banking channel for each. Also where you ask a faction on another Discord server to share with you, so a family can span servers.
Shared accessLeaders you have granted management rights to, and the requests still waiting for your approval.
Family accessWhat the sub-factions in your family are allowed to do to the primary faction.
Settings guideThe explanation of every rule above, in plain English, kept on the page so you don't have to come back here to read it.
Prefer Discord? Nothing above is compulsory — every setting still has a slash command behind it. See the Commands tab for the full list.
What's new in b0torn
Latest updates and improvements.

August 2026

New: Retaliation alerts — when an enemy hospitalises, mugs or leaves one of your members, the bot posts to your retaliation channel with a button straight into that player’s attack page and a live countdown on the five minutes you have to hospitalise them back for the ×1.5 respect bonus. One alert per attacker rather than one per hit, marked taken the moment somebody claims it, and closed early if the target goes somewhere they cannot be hit. Channel, ping role and an optional pause-during-war are set in the panel.

New: b0torn.com/status — a public status page. Uptime over 24 hours, 7 days and 30 days, one bar per day for the last month, and how long the bot has been running. The bot checks in once a minute, so a minute it never reported counts as downtime — the number cannot flatter itself.

New: Raid page — every raid your faction is in, with the enemy roster sorted most-hittable-first: hospital and abroad sink to the bottom, then offline before idle before online, longest-quiet first. Refreshes itself while you work down it.

New: Armory — what members have actually consumed from the faction armory, valued at the market price when they used it. Plus automatic deposit credits (a watchlisted item is valued the moment it lands, posted to the armory channel, and credited to the member’s vault balance with one click) and minimum-stock reminders when something runs short.

New: /lottery create — member-run Xanax raffles. Entrants send Xanax with the lottery’s entry message, the bot reads the item log and records the tickets itself, and the draw plays as a live spinning wheel every viewer sees in sync. First place takes half the pot, the rest share the other half, nothing is kept back.

New: Battle stats — paste your own API key and your stats join the faction sheet, refreshed daily. On the war target list every enemy is shown as a percentage of your own stats: from the shared spy pool where a reading exists, and from a model estimate with a range where nobody has spied them.

New: Shares — an ownership register for a faction family, drawn as a tree. A faction can hold shares in another exactly the way a company holds a subsidiary, so a stake in the main faction carries a share of everything the main faction owns. Values follow live respect.

New: Channels & roles in Settings — every feature channel and ping role, per faction, on one page with a dropdown of your server’s actual channels, instead of running six commands in six rooms and reading six replies. The slash commands still work and write to the same place.

Improved: Members page — a leadership view rather than a roster dump: last sign-in, last seen, banking requests, battle stats, energy and a weekly activity score, all sortable. Open a member for their sign-in history and a heatmap of when in the week they actually play.

Improved: b0torn Userscript — a sortable Stats column on faction member lists, exact hospital countdowns instead of a flat “Hospital”, filters for hospitalised, travelling, fedded and offline members, and a bounty badge on anyone quiet and carrying nothing worth their level.

Improved: Chain alerts tidy up after themselves — the message is deleted if somebody hits and the chain survives, and rewritten to “Chain died” with the count it reached if nobody does. You can now also set the minimum chain length worth ringing the role for.

Fixed: New factions could not finish setup. Torn retired one of the API selections the key check asked for, and the bot read that refusal as a permission problem — telling leaders to grant an access their key already had. It now checks each selection where the bot actually reads it.

Fixed: Attack links. Torn retired loader.php, so every attack link the bot produced answered with an error instead of the attack screen.

July 2026

New: /war-report set-max-respect-window — Limit the max-respect cap to the first N hours of the war. During the opening window, over-cap hits stop counting toward payout; hits landed after the window always count in full. Set to 0 to apply the cap across the whole war. Shows up in /status next to your respect cap.

New: /war-report set-bonus-hit-respect — Count each bonus (chain milestone) hit as a flat respect value toward pay instead of dropping it. Treated as a normal eligible hit; set to 0 to keep excluding bonus hits.

New: /war-report set-count-chain-saves — Always count chain-save hits (landed with under 1 minute on the chain timer) as eligible, even below min-respect or over your caps. New chain_save_hits_60s column in the report CSV.

New: /faction members xanax — Average Xanax taken per day per member, split into own stash vs faction armory. Tracked over time with a 7-day backfill so it works right away.

New: Web Control Panel — sign in at b0torn.com/cp with Discord or an API key and run the faction from a browser: war reports, payouts, banking, member management and settings, on a phone or a desktop.

New: Share an API key with /me key and it earns you a reward for as long as it stays in the scouting pool — currently 1 Xanax per full week.

Improved: /member activity — a weekly heatmap of when a member is actually active, in TCT, with their busiest day and hour named.

May 2026

New: /war-report set-max-hits — Cap the number of eligible hits per member that count toward payout. Prevents outliers from dominating the payout pool. Set to 0 to disable.

New: /war-report set-max-respect — Cap the total eligible respect per member for payout calculations. Once a member reaches the cap, further hits won't add to their payout weight. Set to 0 to disable.

March 2026

New: /member lookup — Score any Torn player from 0–100 across 10 categories to evaluate recruits.

New: /member activity — Activity report based on hourly tracking: war, chain, OC, and online presence with trend indicators.

Improved: /faction members revivable — Now pings the member's Discord account if they're in the server.

Improved: /faction members revivable — Now shows all revivable members, not just those in hospital.

Improved: /faction members discord — More reliable detection of linked Discord accounts.

Improved: /faction members inactive — Default changed from 7 days to 1 day.

Improved: /faction crimes missing-members — Now checks all OC states and excludes Federal members.

Improved: /member lookup — Replaced "Forum Activity" category with "Active Streak" (forum data not available via API). Removed bounty penalty.

Improved: /faction members revivable & discord — Now use a shared data cache for near-instant results instead of individual API calls per member.

Improved: 1-hour pre-war reminder now includes a list of all revivable members with Discord pings.

Improved: 1-hour pre-war reminder is now skipped for termed wars (no leadership ping needed).

New: /admin add-faction — Multi-faction family support. Manage multiple factions from one Discord server with labeled factions and a faction: parameter on commands.

New: /admin list-factions, /admin remove-faction, /admin set-main-faction — Full family management suite.

Improved: All pollers (activity tracking, war activity, rollcall) now iterate all factions per guild automatically.

Improved: Subscription — Each faction in a family has its own subscription status. Clear per-faction messaging when a subscription is required.

February 2026

New: /war-tools send-rollcall — Pre-war rollcall with "I'm in", "Self Hosp", and "Need Bounty" options, plus web link for mobile users.

New: /admin set-termed-war — Termed war mode that switches rollcall to a med-out partner picker.

New: /war-tools activity — Opponent activity chart showing when the enemy faction is most active, with best and worst push times during the day.

New: BulkPay Userscript — Browser script to speed up war payouts on torn.com with auto-fill. (Since renamed the b0torn Userscript.)

New: /faction members — Full suite of faction member status commands: online, offline, okay, flying, hospital, revivable, and inactive.

January 2026

Launch: b0torn Discord bot released with ranked war report generation, fair payout calculations, and spreadsheet export.