> For the complete documentation index, see [llms.txt](https://visionstore.gitbook.io/visionstore-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://visionstore.gitbook.io/visionstore-docs/scripts/badges/configuration/designs.md).

# Designs and logos

Shapes, centre symbols, metals, the nine badge colours, design presets and custom logos.

A badge's look starts from a **design preset** in `config/designs.lua`. The badge can override `emblem`, `mark`, `metal`, `colors` and `logo` itself. Each value comes from the first place that has a valid one: the badge, then the preset, then `Config.DesignDefaults`.

## Shape (`emblem`)

| Value       | Studio name | Shape                                            |
| ----------- | ----------- | ------------------------------------------------ |
| `'shield'`  | Shield      | City police shield                               |
| `'eagle'`   | Federal     | Federal badge with an eagle                      |
| `'star'`    | Star        | Seven-point sheriff star                         |
| `'maltese'` | Fire cross  | Fire department cross                            |
| `'seal'`    | Seal        | Round medallion (government, justice, companies) |

## Centre symbol (`mark`)

| Value      | Studio name  | Symbol                   |
| ---------- | ------------ | ------------------------ |
| `'star'`   | Star         | Star                     |
| `'life'`   | Star of life | Medical star of life     |
| `'scales'` | Scales       | Scales of justice        |
| `'none'`   | Code         | No symbol, only the code |

A `logo` replaces the mark (see [Custom logos](#custom-logos)).

## Metal

`'gold'`, `'silver'`, `'bronze'`, `'gunmetal'`, `'black'`, `'rose'` (rose gold), or any colour as `'#rrggbb'`. A custom colour gets its highlights and shadows generated from that colour.

## Colours

Nine colours, each `'#rrggbb'`. Leave one out to keep the preset's value.

| Key          | Studio name      | Paints                                   |
| ------------ | ---------------- | ---------------------------------------- |
| `primary`    | Enamel & header  | Badge enamel and the card header         |
| `secondary`  | Enamel highlight | Enamel highlight and the header fade     |
| `accent`     | Trim & code      | Trim, stitching and the code on the card |
| `leather`    | Wallet leather   | The wallet                               |
| `card`       | Card paper       | ID card paper                            |
| `ink`        | Card text        | ID card text                             |
| `label`      | Field names      | ID card field names                      |
| `headerText` | Header text      | Text on the card header                  |
| `foil`       | Wallet stamp     | The stamp on the closed wallet           |

## Defaults

The values every preset and every badge start from:

```lua
Config.DesignDefaults = {
    emblem = 'shield',
    mark = 'star',
    metal = 'gold',
    colors = {
        primary = '#14213d',
        secondary = '#2a4f94',
        accent = '#c9a45c',
        leather = '#17120e',
        card = '#f1ece1',
        ink = '#16171b',
        label = '#7a7160',
        headerText = '#f4ead2',
        foil = '#d9bc78',
    },
}
```

## Included presets

| Id           | Label            | Emblem  | Mark   | Metal    |
| ------------ | ---------------- | ------- | ------ | -------- |
| `police`     | City Police      | shield  | star   | gold     |
| `sheriff`    | Sheriff          | star    | star   | gold     |
| `state`      | State Patrol     | shield  | star   | silver   |
| `federal`    | Federal Agency   | eagle   | star   | gold     |
| `medical`    | Medical Services | shield  | life   | silver   |
| `fire`       | Fire Department  | maltese | none   | gold     |
| `justice`    | Justice          | seal    | scales | gold     |
| `government` | Government       | seal    | star   | silver   |
| `press`      | Press            | seal    | none   | gunmetal |
| `corporate`  | Company          | seal    | none   | black    |

## Add your own preset

Add an entry to `Config.Designs`. `label` is the name the Studio shows; every other field falls back to `Config.DesignDefaults`.

```lua
Config.Designs = {
    -- ... the included presets ...

    harbor = {
        label = 'Harbor Patrol',
        emblem = 'shield', mark = 'star', metal = 'bronze',
        colors = { primary = '#0f2e3d', secondary = '#1f5f7a', accent = '#d8b46e', leather = '#121212' },
    },
}
```

Restart the resource, then use `design = 'harbor'` on a badge, or pick **Harbor Patrol** in the Studio and click **Apply**. Presets can't carry a `logo`; set it on the badge.

{% hint style="warning" %}
**Studio badges don't follow later preset changes.** **Apply** copies the preset's look into the badge, and a Studio save stores the complete look. File badges follow `config/designs.lua` after a restart.
{% endhint %}

## Custom logos

A logo replaces the centre symbol of the metal badge.

1. Put the image in `web/logos/`. `web/logos/example_gear.svg` is included as an example.
2. Set `logo = 'myfile.png'` on the badge, or type the file name in the Studio field **Logo file**.
3. **Restart the resource** after adding a new file. New files in `web/` only reach players after a restart.

File name rules:

* only the file name, no folders: `lsc.png`, not `logos/lsc.png`;
* letters, digits, `_` and `-`, no spaces;
* extension `.png`, `.webp`, `.svg`, `.jpg` or `.jpeg`;
* at most 64 characters.

{% hint style="success" %}
The logo is drawn in a circle in the centre of the badge. Square images with a transparent background look best.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://visionstore.gitbook.io/visionstore-docs/scripts/badges/configuration/designs.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
