Skip to content
Torning
Torning

The Torning Discord bot

by liharris30 discord faction leaders alerts commands

How to link your Discord account, put the bot in your faction server, set up roles and alerts, and use every slash command, personal reminder, watch, giveaway and banker card.

What the bot does

The Torning bot brings your Torning data into Discord. It does three kinds of work:

  • Answers slash commands from you and your faction mates: chain status, war targets, your OC seat, vault balance, market prices and more.
  • Posts faction alerts into the channels your leadership picks: crimes, chains, wars, retaliation, banking, armoury and competitions.
  • Sends you direct messages about your own account: full bars, finished cooldowns, landing flights, and the watches you set.

Using the bot is free for every member. Putting it in a server needs Ultra (see below).

Linking your Discord account

There is no code to copy and nothing to log in to. The bot works out who you are from the Discord account linked to your Torn profile.

  1. In Torn, go to Settings, then Account, then Discord, and link your Discord account.
  2. Make sure you have signed in to Torning at least once with your API key.
  3. Use any bot command (for example /whoami). The bot reads the link from Torn and recognises you.

Account › Discord shows your progress in the Connection card: Linked in Torn, then Recognised by the bot. Once recognised it shows the Discord name it knows you by. If you change the link in Torn, the bot follows.

When the bot does not know you

  • No Discord link in Torn: add it in Torn and run the command again.
  • Linked in Torn but never signed in to Torning: sign in once with your API key.
  • Torning's Terms or Privacy Policy changed: the bot stops acting for you (no commands, no alerts) until you sign in and accept them. /whoami and /verify still answer so you can see what is wrong.

/whoami shows the Torn account you are linked to, your faction, when you were linked, and whether you still need to accept the current policies.

Adding the bot to a server

A faction can run the bot in its server when:

  • one of the faction's leaders has Ultra (it unlocks for the whole faction), and
  • the Discord module is switched on in Faction › Settings › Manage.

Inviting the bot

You can get the invite link from two places:

  • Account › Discord, under Connection: Invite the bot to a server. This button needs Ultra on your own account; without it you see Invite the bot with Ultra.
  • Faction › Settings › Discord, on the Overview tab before a server is linked: Invite the bot to Discord.

Adding a bot to a server needs the Manage Server permission on the Discord side. The invite asks for the permissions the bot uses: Administrator (so it can post in private channels such as a bankers channel), View Channels, Send Messages, Embed Links and Manage Roles.

Linking the server with /setup

  1. In any channel of the server, run /setup.
  2. The bot checks who you are through Torn and links the server to your faction.
  3. Go to Faction › Settings › Discord to choose roles and alerts.

Who can run /setup:

  • On Discord, only members with Manage Server see the command.
  • On Torning, you must be a leader or co-leader, or hold a position with the Manage Discord permission.
  • The Discord module must already be on, and the server cannot be linked to another faction.

If the same faction links a server again, its roles and alert channels are kept. Unlink server on the Overview tab disconnects it.

The Discord settings page

Faction › Settings › Discord is open to leaders, co-leaders and positions with Manage Discord. It has six tabs: Overview, Roles, Alerts, Giveaways, Commands and Delivery log.

Once a server is linked, Overview shows Server Connected, how many members hold a bot role, how many alerts are on, and the result of the last member check. Warnings about roles also show here.

Roles, nicknames and /verify

On the Roles tab you point the bot at roles in your server. Pick each one from the list, or paste a role ID if Torning cannot read your roles yet (turn on Developer Mode in Discord, right-click a role and choose Copy Role ID).

Role slotWhat it doesHanded out by the bot?
Faction member roleGiven to members of your faction. The one worth gating channels on.Yes
Verified roleGiven to anyone the bot recognises who is not in your faction, such as allies and friends.Yes
Unverified roleGiven to server members with no Discord link in Torn, and to new joiners until they are verified. Taken away once they are.Yes
Banker roleLets the holder settle vault requests and reimbursement tickets.No, only checked
Player giveaway roleLets the holder host player giveaways.No, only checked
Faction giveaway roleLets the holder host official faction giveaways (and player ones).No, only checked

A member holds either the faction member role or the verified role, never both, depending on whether they are in your faction. When someone joins or leaves the faction, the bot swaps their role on its own. It also checks the whole server every few hours.

The bot never hands out the banker or giveaway roles, so you can point them at roles you manage yourself.

Nicknames

Verified members get their nickname set to Name [ID], using their Torn name and ID. Discord caps nicknames at 32 characters, so a long name is shortened and the ID always fits.

/verify

CommandWhat it doesWho can use it
/verify meChecks your Torn link and syncs your roles and nickname.Anyone
/verify user (target)Verifies one person by @mention, Discord ID, Torn ID or name.Leadership and Manage Discord
/verify allChecks every member of the server and re-syncs roles and nicknames.Leadership and Manage Discord

Resync roles on the Overview tab does the same as /verify all.

Tips

  • Discord only lets the bot change roles below its own. If you see "Move the Torning bot's role above it in Server Settings", drag the bot's role higher.
  • If vault requests are on but no banker role is set, the Roles tab is flagged, because nobody could settle a request.

Faction alerts

The Alerts tab lists every alert your faction can use. An alert only appears when the module it reads from is on. To switch one on you need Manage Discord (leaders and co-leaders always have it) and also the permission to see the data it posts, because whoever picks the channel decides who reads it.

GroupAlertWhat it postsNeeds
Organised crimesOC seat recommendedWhen Torning's planner picks a member for a crime slot.Crimes module, View crimes
Organised crimesOC ready to executeWhen a crime is close to its ready time.Crimes module, View crimes
Organised crimesOC delayedWhen a crime passes its ready time without being run.Crimes module, View crimes
Organised crimesMembers not in a crimeA list of members holding no crime seat, on your schedule.Crimes module, View crimes
Organised crimesCrew member unavailableWhen someone in a crew is abroad or in hospital past its ready time.Crimes module, View crimes
BankingPayout landedWhen a declared payout is matched in the ledger.Accounting module, View accounting
BankingPeriodic finance reportThe executive financial summary, on your schedule.Accounting module, View accounting
BankingVault requestThe bankers channel: vault request cards, reimbursement tickets and armoury requests go here.Accounting module, View accounting
ChainsChain about to dropWhen the chain timer falls under two minutes.Chains module
ChainsBonus hit coming upPings whoever booked a bonus hit when the chain is ten hits away.Chains module
Ranked warsLive war target boardOne message showing enemy targets, updated every minute of a war.Ranked wars module, View wars
Ranked warsWar lead & score alertWhen you take the lead, fall behind, or near the target score.Ranked wars module, View wars
RetaliationRetaliation digestA roundup of who hit your members, on your schedule.View wars
RetaliationLive retaliation alertPings while the 5 minute retaliation window is still open.View wars
ArmouryArmoury low stockItems below their stock target, with how fast they are used.Accounting module, View accounting
MembersMember inactivity noticeMembers who have not logged in to Torn for 3+ days.Accounting module
CompetitionsCompetition startedWhen a competition goes live, with what it measures and the prizes.Competitions module, Manage competitions
CompetitionsCompetition standings digestThe top five of every running competition, on your schedule.Competitions module, Manage competitions
CompetitionsCompetition resultsFinal places once a competition is scored, 45 minutes after it ends.Competitions module, Manage competitions
CompetitionsRace resultsEach finished faction race with member places, times and season points.Competitions module, Manage competitions

The banking alerts depend on Accounting, which is in private beta, so they only appear for factions it has been switched on for.

Extra Torn API calls

  • Live retaliation alert adds about 1,440 Torn API calls a day against one member's key.
  • The two chain alerts read the chain every 30 seconds while your faction is chaining, and once every two minutes otherwise.

Setting up alerts

Each alert is a row with a switch, a channel, a mention setting and two buttons.

  1. Choose a channel. An alert cannot be switched on until it has one ("Pick a channel first"). If Torning cannot read your channels, paste a channel ID instead.
  2. Flip the switch to turn it on.
  3. Pick a mention: No ping, Ping the member, or Ping a server role (then choose the Role to ping).
  4. Set the timing where the alert has one (see below).

Each group header has Set channel for all with Apply, plus Enable all and Disable all. Use the category chips or Search alerts to narrow the list.

Timing options

AlertSettingChoices (default)
OC ready to executeCall it15 minutes to 1 day ahead (1 hour)
OC delayedAlert after15 minutes to 1 day overdue (30 minutes)
Crew member unavailableLook ahead1 hour to 2 days (12 hours)
Members not in a crimePost every6 hours to a week (day)
Retaliation digestPost everyHour to day (hour)
Periodic finance reportPost everyDay, week, 30 days or 3 months (3 months)
Armoury low stockPost every1 week, 2 weeks or 1 month (1 week)
Member inactivity noticePost everyDay, 2 days or week (day)
Competition standings digestPost every6 hours to 2 days (day)

Preview and test

  • The eye button (Preview embed) shows the message as Discord would draw it, without posting anything.
  • The paper plane button (Send a test message) posts a sample to the alert's channel. Use it to check the bot can post there.

Pausing notifications

Use Pause notifications at the top of the Alerts tab to quieten whole categories for an event.

  1. Tick the Alert categories to pause.
  2. Set the Start (leave it for now) and End. Times follow your TCT / Local clock switch.
  3. Write a Reason or tap a preset (Ranked war, Chain, Raid, Maintenance). The channel is told the reason.
  4. Press Pause.

The bot announces in the channel when a pause starts and when it ends. A running pause shows Resume now; a scheduled one shows Cancel.

Delivery log

The Delivery log tab lists the last 25 posts to your server, filtered by All, Delivered or Failed. A failed post shows Discord's error, which is usually the first place to look when an alert did not appear.

Command permissions

Every command has an access level:

LevelWho can run it
PublicAnyone the bot recognises.
Faction memberMembers of your faction, and only in your own faction's server (or in a DM). Some also need a position permission, the same one the website asks for.
LeadersLeaders, co-leaders and positions with Manage Discord.
DisabledNobody.

Torning sets these levels; the defaults are shown in the command tables below. On top of the level, a command that reads a module (Chains, Accounting) refuses to run while that module is off, and tells you a leader can turn it on.

The Commands tab on Faction › Settings › Discord lists every command with its current status for your faction: Public (Everyone), Faction Members, Leaders Only, Module Disabled or Admin Disabled. Filter it by category.

Commands: your own tools

These are Public and work for anyone the bot recognises. Replies are private unless noted.

/alerts

SubcommandOptionsWhat it does
statusLists every personal alert, on or off, with any custom trigger.
enablealert, threshold (optional)Turns one alert on.
thresholdalert, valueSets a custom trigger such as 140e, 40n, 99% or 2m. max or 100% goes back to the default.
disablealertTurns one alert off.
togglealertFlips one alert on or off.
allaction (enable or disable)Turns every personal alert on or off.

Turning an alert on from Discord also grants the Personal Alerts consent for you.

/travel

SubcommandOptionsWhat it does
stockcountry, capacity (both optional)Foreign item stock, prices and profit margins. Defaults to where you are flying; capacity defaults to what your perks and flight method allow (up to 200).
etaYour current flight and when it lands.
alarmminutes (optional, 1 to 60)DMs you before your flight lands, 5 minutes by default. It turns on the Flight landed alert, so it stays on for future flights.

/market and /stocks

CommandOptionsWhat it does
/market itemsearchMarket value, buy and sell price and circulation for an item (name or ID).
/market stocksearchShare price, market cap and dividend bonus for a stock (ticker or name).
/stocks portfolioYour holdings, share counts and total value as Torning has them.
/stocks dividendsProgress towards each dividend or benefit payout.

/loot (NPC bosses)

SubcommandOptionsWhat it does
statusnpc (optional)Hospital status, health and loot level countdowns for the bosses (Duke, Leslie, Anonymous, Jimmy, Fernando, Tiny, Scrooge). Posts in the channel.
watchnpc, level (1 to 5, default 4), health (optional %)DMs you when a boss reaches the loot level, optionally only once its health drops to that percent. Use All to watch every boss.
listYour active loot watches with their IDs.
removeidDeletes one watch.
clearDeletes all your loot watches.

/watch (price watches)

SubcommandOptionsWhat it does
itemname, price, direction (optional)DMs you when an item's market value reaches your price (for example 830000 or 1.2m).
stockticker, price, direction (optional)DMs you when a share price reaches your price.
listYour active price watches.
removeidDeletes one watch.
clearDeletes all your price watches.

Direction is "At or below target" or "At or above target". Leave it out and the bot picks: a price under today's means you are waiting for a drop.

/stakeout

SubcommandOptionsWhat it does
addtarget, hospital_out, landing (both default on)DMs you when a player leaves hospital or lands, with buttons to attack, view their profile, bounties and bazaar.
itemname, destination, stock_min, margin_min (all but name optional)DMs you when an item restocks abroad. Leave out the destination to watch every country that sells it. Optionally only above a stock count or a margin (after the market fee).
listAll your player and item stakeouts.
removetargetRemoves a player stakeout.
remove-itemnameRemoves your item stakeouts on that item, in every country.
checktargetA quick look at a player's status, hospital time and last action (up to 10 checks a minute).

/whoami and /verify

/whoami shows your linked Torn account and faction. /verify is covered in the roles section above.

Commands: faction

These are Faction member commands: they need you to be in the faction and only run in your own faction's server. Some need a position permission, which a leader grants on Faction › Settings › Manage.

/members (also /member)

SubcommandOptionsWhat it does
online, offlineMembers online or idle, or offline.
okay, flying, hospitalMembers by status: Okay, travelling or abroad, in hospital.
revivable (or revives)Members with revives turned on.
inactivedays (default 3)Members inactive for at least that many days.
discordMembers with no Discord linked.
xanaxXanax each member takes from any source, and how much came from the armoury. Needs View accounting.
lookuptargetScores any Torn player from 0 to 100 across 10 categories.
activitytarget (optional)Every member's 7-day activity, most active first, with Previous and Next buttons, or one member in detail. Needs View wars and View crimes.
comparetarget, withTwo members' 7-day activity side by side. Needs View wars and View crimes.
verifytarget (optional, or all)The same as /verify.

/faction

A grouped version of the same tools:

  • /faction members with online, offline, okay, flying, hospital, revivable, inactive, discord, xanax, lookup and activity.
  • /faction crimes with missing-members and status, the same as /oc.

/oc

SubcommandWhat it does
statusYour current organised crime seat and the one Torning recommends next.
missing-membersMembers not in any active OC (recruits and members excluded from OCs are left out). Needs View crimes.

/chain (Chains module)

SubcommandOptionsWhat it does
statusChain count, time left, pace and who holds which bonus hit. Posts in the channel.
bookhitBooks a bonus hit (for example 250 or 1000) on the running chain. You get pinged when the chain is ten hits away.
releasehitGives a booked bonus hit back.

/war (needs View wars)

SubcommandWhat it does
statusScore, lead, target and projected end of the active ranked war.
targetsThe target board, with Claim Target (claims dibs on the highest-level unclaimed enemy who is Okay), Out of Hosp Alert (a stakeout on the enemy leaving hospital soonest) and Refresh.
rosterThe enemy roster: how many are attackable, in hospital or abroad.
rollcallShows the war rollcall, with I'm In, Ready (Can + FHC), Unavailable and Add Note. If there is none yet, it starts one, which needs Manage wars.

All /war replies post in the channel.

Other faction commands

CommandWhat it does
/retalLists open retaliation windows and when they close. Posts in the channel. Needs View wars.
/spy user (target)Spy intel on a player that your faction can see.
/spy compare (target)That intel against your own battle stats (needs your stats synced on Torning).
/armory request (item, quantity)Asks the armoury for an item (see the banker cards section).
/armory linksShortcuts to your faction armoury tabs on Torn.

Commands: banking and setup

/banking (also /bank)

Faction member commands that need the Accounting module, used in your faction's server.

SubcommandOptionsWhat it does
balanceYour cash and points in the faction vault, and any request you have waiting.
statementYour balance plus your vault requests from the last 30 days.
withdrawamountAsks a banker for money from your own balance: 1m, 1.5m, 250000 or all.
register-reimbursementamount, reason, receipt (optional)Submits something you bought for the faction to be paid back.
cancelTakes back the vault request you have waiting.

Leadership and server commands

CommandAccessWhat it does
/financesFaction member with View accountingYour faction's executive financial summary for the current quarter. Always private. Only works while Accounting (in private beta) is switched on for your faction.
/setupLeadersLinks the server to your faction.
/giveawayPublic (in your faction's server)Runs giveaways. See the giveaways section.

Personal DM reminders

The bot can message you privately about your own account. Nothing here is visible to your faction. Set them up on Account › Discord under Reminders, or with /alerts.

They need the Personal Alerts consent: press Grant access on the card. Each one you switch on makes Torning read your bars, cooldowns and travel from your own API key every minute. If the bot has not seen you yet, the card says so: link Discord in Torn and use a command once.

GroupReminderMessages you whenCustom trigger
BarsEnergy fullYour energy bar caps.A value (140) or percent (90%)
BarsNerve fullYour nerve bar caps.A value (40) or percent (80%)
CooldownsDrug cooldown upYour drug cooldown reaches zero.Minutes before (2m)
CooldownsBooster cooldown upYour booster cooldown reaches zero.Minutes before (2m)
CooldownsHospital out / Medical cooldownYou leave hospital or your medical cooldown clears.Minutes before (2m)
TravelFlight landedYour flight touches down.Percent of the flight done (99%) or minutes before landing (2m)
BankingBank investment maturedYour fixed-term City Bank deposit finishes.No
StocksStock dividend readyA stock benefit block is ready to claim.No
Messages & EventsUnread messagesYou have unread Torn mail or chat messages.No
Messages & EventsNew eventsYou have new unread Torn events.No
DailyDaily summaryJust before the Torn day resets (23:57 TCT): checklist progress, training and combat, and your money, each against the day before.No

Custom triggers

  • Without a trigger, a reminder fires at full (or at zero for a cooldown).
  • Switch a reminder on, then type in the Custom trigger box and press Enter. Reset clears it.
  • From Discord, use /alerts threshold.

Switching a reminder off forgets anything it was waiting for, so turning it back on later does not send you a stale message.

Rows on your dashboard's Daily checklist can also ping you by DM when they become due. That needs Discord linked and Personal Alerts granted too.

Your watches

Watches are set from Discord and arrive by DM. Account › Discord lists your active ones under Watches, in four sections:

SectionSet withHow it firesLimit
NPC Loot Rangers Watches/loot watchOnce, when the boss reaches your loot level (and health), then the watch ends.20 active
Market & Stock Price Watches/watch item, /watch stockOnce, when the price reaches your target, then the watch ends. Checked every 5 minutes.25 active
Item Stakeouts/stakeout itemWhen the item restocks abroad and meets your stock and margin floors.25
Player & Target Stakeouts/stakeout addEach time the player leaves hospital or lands and becomes Okay.25 active

On the page, each watch shows when you set it. Press the bin icon to remove one, or Clear all to remove a whole section. Player stakeouts show the target's current status and an Attack button.

If the page warns that your Discord account is not linked yet, the bot has nowhere to send these DMs. Link Discord in Torn and use a command once.

Giveaways

Giveaways run in your faction's linked server. You must be in the server's faction to use /giveaway.

Who can host

  • Player giveaways (the default): holders of the Player giveaway role or the Faction giveaway role.
  • Faction giveaways (official): holders of the Faction giveaway role.
  • Leaders, co-leaders and positions with Manage Discord can host either type.

The host, leadership, and holders of the matching role can also cancel, reroll and verify logs.

Creating one

/giveaway create takes:

OptionMeaning
prizeWhat is being given away (required).
durationHow long until the draw, such as 30m, 2h or 1d (required, 1 minute to 30 days).
winnersHow many winners (default 1, up to 50).
channelWhere to post. Defaults to the server's giveaway channel, or the channel you ran it in.
require_logWhether the host must post proof the prize was sent (default on).
log_deadlineHow long after the draw the proof is due, such as 24h (up to 168 hours). Defaults to the server setting.
descriptionRules or notes, shown behind a Rules button.
faction_onlyOnly faction members can enter (default on).
typePlayer Giveaway (default) or Faction Giveaway (official).
min_levelMinimum Torn level to enter.

Entering

Press Enter Giveaway on the card. Press it again to leave. View Entries lists who is in. Entrants at level 50 and above get a second ticket, and level 100 a third, which improves their odds in the draw.

The draw

The bot draws winners automatically when time runs out, updates the card, announces the winners in the channel and DMs them. To draw early, use /giveaway end (id).

Delivery logs

When a log is required, the ended card shows the deadline and these buttons:

  • Send Prize opens a Torn trade with the first winner.
  • Submit Delivery Log opens a form for the trade log or proof. You can also use /giveaway confirm-log (id, log).
  • Proof posted by the host or leadership counts as verified straight away. Proof posted by a winner waits for the host or leadership to press Verify Log.

When the deadline is two hours away, the bot posts a reminder in the channel and DMs the host. After the deadline the giveaway is marked overdue.

Rerolling, cancelling and listing

CommandWhat it does
/giveaway reroll (id, count)Replaces the winners with new ones drawn from entrants who had not won (one by default). The Reroll button on the card draws one. The log status starts again.
/giveaway cancel (id)Cancels a giveaway.
/giveaway list (filter)Up to 10 giveaways: active, ended or all.
/giveaway stats (user)Totals, log compliance, top hosts and top winners, or one member's record.

The Giveaways tab

On Faction › Settings › Discord, the Giveaways tab lets you set the Default Giveaway Channel and the Default Log Confirmation Deadline (1 to 168 hours, 24 by default), then Save Giveaway Settings.

Below that you see how many giveaways were hosted, total entries and the Log Verification Rate (the tick marks 80%), plus a list you can filter by All, Active, Pending Log and Ended. From the list you can Draw Now, Verify Log or Reroll.

Banker and armoury cards

These cards land in the channel chosen for the Vault request alert (your bankers channel), pinging whoever that alert is set to mention. They need the Accounting module, a bankers channel and a banker role set on the Roles tab.

Vault requests

  1. A member runs /banking withdraw. They can only ask for what they hold, and can have one request open at a time.
  2. The card shows who is asking, how much, their balance and when the request expires (after 60 minutes).
  3. A banker presses Pay. It opens Torn's give-money form with the member and amount filled in, and marks the request paid on the way. Torning locks it once the faction vault log shows the money move.
  4. Or a banker presses Cancel.
  • Only holders of the banker role can settle a card. Bankers do not need a Torning account.
  • A settled card that the vault log has not matched shows Reopen, which asks for a reason.
  • The member gets a DM at each step (raised, paid, cancelled, expired) and can cancel their own request from it or with /banking cancel.
  • Requests also appear on Faction › Bank, where bankers can pay or cancel them too, and stay in step with the cards.

Reimbursement tickets

When a member runs /banking register-reimbursement, a ticket is posted with the amount, reason and any receipt. It expires after 7 days. The card has Review in Accounting (approve or reject on Torning) and Pay on Torn. The member is sent a DM with Cancel my request, and another when the ticket is approved or rejected (with the reason).

Armoury requests

/armory request posts a card asking for an item and quantity. If no bankers channel is set, the card is posted where the command was run instead. The card has Approve, Decline and a link to the Torn armoury. Only positions with Manage accounting can approve or decline. Loan the item on Torn as usual.