D&D Encumbrance Threshold Calculator by Strength
This D&D encumbrance threshold calculator converts a creature's Strength score into the two weight boundaries used by the variant encumbrance rule.
Run — free
Enter an integer from 1 through 30 to see the encumbered threshold at five times Strength and the heavily encumbered threshold at ten times Strength, both expressed in pounds. It is useful when planning equipment, checking a character sheet, preparing a session, or resolving a carrying-capacity question without repeating the arithmetic at the table.
How the variant thresholds are calculated
The variant encumbrance rule relates carried weight directly to the creature's Strength score. The first boundary is five times Strength, and the second boundary is ten times Strength. A character with Strength 14 therefore has an encumbered threshold of 70 pounds and a heavily encumbered threshold of 140 pounds. The calculator performs those two multiplications and reports the boundary values in pounds. These values are reference points, not a total of the character's equipment, so enter the Strength score rather than armor weight, backpack weight, or carrying capacity. The wording of the rule matters when interpreting a boundary: a creature becomes encumbered when it carries weight in excess of the first value, and it becomes heavily encumbered when it carries weight in excess of the second. Weight exactly equal to a reported boundary has not exceeded that boundary. The result deliberately keeps both thresholds visible so players and game masters can compare a current equipment total without doing another calculation. It does not apply optional character features, magic items, creature size adjustments, or table-specific house rules automatically.
Use the result with an equipment total
Begin with the Strength score currently shown on the creature's statistics, including any lasting change that has already altered that score. Enter that integer and calculate the two thresholds. Next, add the weights of the equipment the creature is actually carrying: worn armor, weapons, ammunition, containers, coins, tools, food, and the contents of packs can all matter when the group tracks them. Compare that total with the returned boundaries. A total above the encumbered threshold but not above the heavily encumbered threshold falls in the encumbered band. A total above the heavily encumbered threshold falls in the heavily encumbered band, subject to the rest of the rule and the creature's maximum carrying capacity. This calculator does not ask for an inventory because its purpose is narrower: it establishes the two Strength-based boundaries accurately and consistently. That makes it practical for a spreadsheet, virtual tabletop, character builder, or quick manual check. If a temporary effect changes Strength, recalculate with the new score; if only the inventory changes, reuse the same thresholds and compare the new weight total.
Scope, units, and common rule distinctions
The output is expressed in pounds because the variant rule defines these multipliers using pounds. Do not enter a Strength modifier: the score itself is required, so a character with Strength 16 uses 16, not the associated modifier. The accepted range is 1 through 30, matching the bounded Strength scores normally represented by the game's ability-score scale. The calculator distinguishes variant encumbrance thresholds from the standard carrying-capacity calculation. Standard carrying capacity is generally based on fifteen times Strength, while the variant introduces consequences at the lower five-times and ten-times boundaries. This capability reports only those two requested variant boundaries and does not claim that the heavily encumbered value is the absolute maximum load. Creature size, Powerful Build, magic, class features, and campaign rulings may change how carrying capacity or effective size is handled; apply those rules separately when they are relevant. For unusual interpretations, the game master's ruling remains authoritative. Because the calculation uses no network, randomness, saved state, or current date, the same valid Strength score always produces the same pair of thresholds, making the result suitable for repeatable rules references and automated character tools.
What you can do with it
Check a character sheet
Turn the listed Strength score into both variant encumbrance boundaries before totaling weapons, armor, coins, and adventuring gear.
Resolve a table question
Give players an immediate pair of weight thresholds when a newly found item may push a character into a different encumbrance band.
Build campaign tooling
Use the deterministic output in a spreadsheet, virtual tabletop, or inventory workflow that compares carried pounds with rules-based boundaries.
FAQ
What formulas does the calculator use?
The encumbered threshold is Strength multiplied by 5, and the heavily encumbered threshold is Strength multiplied by 10.
Should I enter my Strength score or Strength modifier?
Enter the full Strength score. For example, enter 14 rather than the modifier associated with a score of 14.
Are the results shown in pounds?
Yes. Both returned thresholds are weights in pounds, following the units used by the variant rule.
Does weight equal to a threshold count as exceeding it?
No. The rule refers to weight in excess of each boundary, so equality alone does not exceed that threshold.
Is the heavily encumbered threshold the maximum carrying capacity?
No. It is the second consequence threshold under the variant rule. Maximum carrying capacity is a separate boundary.
What does an API calculation cost?
Each API request costs $0.002. The same deterministic calculation can also run in the browser.
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/hobby/dnd-encumbrance \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"strength_score":14}'const res = await fetch("https://api.kit.forhosting.com/hobby/dnd-encumbrance", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"strength_score": 14
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/hobby/dnd-encumbrance",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"strength_score": 14
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/hobby/dnd-encumbrance", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"strength_score":14}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"strength_score":14}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/hobby/dnd-encumbrance", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"strength_score": 14
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "hobby.dnd_encumbrance",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |