# Creating and configuring custom user fields

**URL:** <https://meta.discourse.org/t/creating-and-configuring-custom-user-fields/113192>\
**Category:** Site Management\
**Tags:** how-to, user-custom-fields, users\
**Created:** [April 2, 2019, 1:42am UTC](https://meta.discourse.org/t/creating-and-configuring-custom-user-fields/113192 "2019-04-02T01:42:35Z")\
**Posts on this page:** 1\
**Showing post:** 90

<div class="post-metadata">

**Author:** ![pacharanero](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pacharanero/32/500583_2.png) [@pacharanero](https://meta.discourse.org/u/pacharanero)\
**Post date:** [November 3, 2026, 8:41pm UTC](https://meta.discourse.org/t/creating-and-configuring-custom-user-fields/113192/90 "2026-11-03T20:41:11Z")

</div>

# Creating a Discourse multiselect user field with many options

Entering dozens or hundreds of choices one at a time in Discourse’s custom user-field editor is tedious. I’ve been working on a multipurpose CLI tool for Discourse called [`dsc`](https://github.com/pacharanero/dsc), which makes operations like this easier and more deterministic using local files. Just one of many things it can do is manipulate Custom User Fields.

`dsc` can create a new custom user field from a YAML file, including the entire ordered option list in one operation. The `ucf` command is an alias for `user-field`.

First, list your existing custom user fields:

```console
dsc ucf list myforum --format yaml

```

This shows their IDs, types, options and settings.

## Prepare the field

Create `user-fields.yaml`, replacing the source URL, question and options with your own. Make sure your YAML is valid - it’s easy to get wrong.

For example, here’s a country multiselect with 25 options:

```yaml
version: 1
source: https://forum.example.org
user_fields:
  - name: Countries
    description: Which countries do you work in? Select all that apply.
    field_type: multiselect
    editable: true
    requirement: on_signup
    show_on_profile: false
    show_on_signup: true
    show_on_user_card: false
    searchable: false
    options:
      - Argentina
      - Australia
      - Brazil
      - Canada
      - China
      - Denmark
      - Egypt
      - France
      - Germany
      - India
      - Ireland
      - Italy
      - Japan
      - Kenya
      - Mexico
      - Netherlands
      - New Zealand
      - Nigeria
      - Norway
      - Singapore
      - South Africa
      - Spain
      - Sweden
      - United Kingdom
      - United States

```

This creates **one field with 25 options** , rather than 25 separate fields. You can extend the list as needed - I’ve used this approach successfully for a field with 250+ options.

## Preview, create and verify

```console
dsc ucf push --dry-run myforum user-fields.yaml
# Review the plan and the complete YAML file before applying.
dsc ucf push myforum user-fields.yaml
dsc ucf show myforum <field-id> --format yaml

```

Happy to get feedback on `dsc` including ideas for missing features. Create issues on the [GH repo](https://github.com/pacharanero/dsc) please.

---

_[View the full topic](https://meta.discourse.org/t/creating-and-configuring-custom-user-fields/113192)._
