---
name: set-character-advantages
description: Reference for the 144 character advantages in the Set World API and the stat bonuses each one gives. Use when listing or downloading the advantage table with its impacts, reading the schema of an advantage row and of the advantages on a rolled character, or building a perk picker or character creator.
license: Free to use when obtained from set.world, commercially too (the API, what it returns, the skills and downloaded models). The source code of Set is © Jimmy Lee under CC BY-NC 4.0 and its commercial use needs a paid waiver.
metadata:
  version: "0.8.9"
  title: Advantages
---

# Advantages

Set has 144 advantages: phrases such as `nimble and fleet-footed`, `blessed with robust health` or `a constitution of iron`. Each one raises one or two base stats by a fixed percentage. The table stores only names; the numbers come from a pinned hash of the name ([Calculations](https://set.world/skills/calculations)).

```sh
curl https://set.world/api/advantages               # JSON: names only
curl 'https://set.world/api/advantages?format=csv'  # the whole table with its impacts
```

## Schema

```ts
type Advantage = { id: number; name: string };   // id: the position in the table, from 0
type AdvantagesResponse = { data: Advantage[] };
```

```json
{ "data": [{ "id": 0, "name": "nimble and fleet-footed" }, { "id": 1, "name": "unyielding in the face of adversity" }] }
```

Two of the 144 rows are shown. The CSV joins each name with its impact:

```csv
id,name,kind,tier,primary,primaryDelta,secondary,secondaryDelta
0,nimble and fleet-footed,advantage,1,dexterity,0.05,,
1,unyielding in the face of adversity,advantage,2,dexterity,0.1,resolve,0.05
4,a constitution of iron,advantage,2,luck,0.1,intelligence,0.05
```

The same impacts as JSON: `/api/traits/impacts?kind=advantage`.

## Query the table

```sh
curl 'https://set.world/api/advantages?primary=dexterity&tier=2'               # advantages by the stat and tier of their impact
curl 'https://set.world/api/advantages?id=1'                              # one row by id
curl 'https://set.world/api/advantages?q=iron&format=csv'                 # text in the name, with impacts as CSV
```

```json
{
  "data": [
    { "id": 1, "name": "unyielding in the face of adversity" },
    { "id": 29, "name": "ears that catch whispers on the wind" },
    { "id": 54, "name": "a charm that few can resist" },
    { "id": 116, "name": "instincts honed for survival in the harshest environments" },
    { "id": 139, "name": "a voice that commands instant attention and obedience" },
    { "id": 140, "name": "a natural kinship with the creatures of the deep" }
  ]
}
```

`tier`, `primary` and `secondary` filter by the impact even though the JSON rows carry only `id` and `name`; add `format=csv` to see the impacts. The filters are owned by [API connection](https://set.world/skills/api-connection).

## The impact of an advantage

| Tier | Names in the table | Primary stat | Secondary stat |
| --- | ---: | ---: | ---: |
| 1 Minor | 100 | +5% | none |
| 2 Standard | 28 | +10% | +5% |
| 3 Major | 11 | +15% | +10% |
| 4 Mythic | 5 | +25% | +15% |

`primary` and `secondary` can be any of the nine stats. The name does not predict them: `a constitution of iron` raises luck and intelligence. Read the returned impact, not the phrase.

## On a character

`/api/roll/character` gives 0 to 2 advantages, drawn uniformly without repeats. `stats.advantages` is the count. `traits.advantages` is the list, or `null` when the count is 0. Each entry is the table row plus its `index` and `impact`, as in the example in [Rolling a character](https://set.world/skills/rolling-a-character).

The response already contains the result of every trait as `modifiedStats`. Do not apply it again.

## Your own advantages

Any string has an impact, so a game can add its own advantages and get consistent numbers from `/api/traits/impact?name=…&kind=advantage`. A renamed advantage is a different advantage with a different impact, so keep names exactly as returned.

```ts
type Perk = { name: string; source: 'set' | 'custom'; impact: TraitImpact; cost: number; grantedAt: string };
```

Related: [Disadvantages](https://set.world/skills/character-disadvantages).
