> ## Documentation Index
> Fetch the complete documentation index at: https://launchdarkly.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Custom flags

<View title="Developer" />

<View title="Federal docs" />

<View title="EU docs" />

This topic explains how to get started with custom flags.

While LaunchDarkly provides flag creation templates for the common flag templates discussed in this category, we expect that you will need other flags as well. For ideas and examples of other flags and their use cases, read our guide on [Creating flags](/docs/guides/flags/creating-flags).

<Note>
  **Default flag settings only apply to custom flags**

  When you create a new flag in the LaunchDarkly UI, you can choose to start with a flag template, or create a custom flag. Each flag template has its own custom default settings that you cannot alter. Only custom flags are affected by the default flag settings you configure at the project level.

  To learn more about default flag settings, read [Projects](/docs/home/account/project).
</Note>

## Create custom flags

To create a custom flag:

1. Click **Create** and choose **Flag**. The "Create flag" dialog appears.

<Frame caption="The &#x22;Create&#x22; menu options.">
  <img src="https://mintcdn.com/launchdarkly/-b7nPh0oyigf6iW7/images/auto/create-menu.auto.png?fit=max&auto=format&n=-b7nPh0oyigf6iW7&q=85&s=5b3fe40c4dd161b2972de2334ff19c0a" alt="The &#x22;Create&#x22; menu options." width="1180" height="440" data-path="images/auto/create-menu.auto.png" />
</Frame>

2. Enter a unique, human-readable **Name**. A suggested key auto-populates from the name you enter, but you can customize it if you wish.

3. (Optional) Click **Edit key** to update the flag key. You'll use this key to reference the flag in your code.

4. (Optional) Enter a **Description** of the flag. A brief, human-readable description helps your account members understand what the flag is for.

5. From the **Variations** menu, choose "Boolean", "String", "Number", or "JSON".

6. (Optional) Click **+** to add additional variations to string, number, or JSON flags.

7. (Optional) Click a variation name to edit its name and value.

8. (Optional) For string, number, or JSON flags, click **Schema** to validate the variations using a [JSON schema](/docs/home/flags/variations#json-schema-for-multivariate-flag-variations).

   * Click the **magic wand** icon to suggest a JSON schema based on your existing variation values.
   * Click the **broom** icon to format the JSON schema.

   <Frame caption="The schema option in the flag creation dialog.">
     <img src="https://mintcdn.com/launchdarkly/nJ-98AdUTCC7b8MD/images/auto/flag-create-schema.auto.png?fit=max&auto=format&n=nJ-98AdUTCC7b8MD&q=85&s=5e6af1b9c9af51e106ebcad824bce8ff" alt="The schema option in the flag creation dialog." width="1540" height="1234" data-path="images/auto/flag-create-schema.auto.png" />
   </Frame>

9. (Optional) Change the [default on](/docs/home/flags/default-rule) and [default off](/docs/home/flags/off-variation) variations if needed.

10. (Optional) Click on your member name to change the flag maintainer.

11. (Optional) Click the **tag** icon to add one or more [tags](/docs/home/account/tags).

12. (Optional) Click the **views** icon to add the flag to a [view](/docs/home/account/views).

13. (Optional) Click **All SDKs** to make the flag [unavailable to client-side or mobile SDKs](/docs/home/flags/flag-settings). Flags are available to all SDKs by default.

14. (Optional) Click **Temporary** to change the flag from [temporary to permanent](/docs/home/flags/flag-settings).

15. (Optional) Click **Prerequisite** to add a [prerequisite flag](/docs/home/flags/prereqs).

16. Click **Create flag**.

The flag **Targeting** tab appears.

After you create a flag, you can make further changes to it as needed, such as to [update flag targeting](/docs/home/flags/target).

To learn more, read [Creating new flags](/docs/home/flags/new).

## Modify the default flag template

To modify your default flag template:

1. Click the project dropdown. The project menu appears:

<Frame caption="The project menu.">
  <img src="https://mintcdn.com/launchdarkly/A4UXoRTW8ATNw4yq/images/auto/project-menu-dropdown.auto.png?fit=max&auto=format&n=A4UXoRTW8ATNw4yq&q=85&s=cb54f266bfd606cf1c307999121a40cb" alt="The project menu." width="576" height="364" data-path="images/auto/project-menu-dropdown.auto.png" />
</Frame>

2. Select **Project settings**.
3. Select **Flags**. The **Flags** settings list appears.
4. In the "Flag templates" section, click the **pencil** icon next to "Default."
5. Choose **Yes** or **No** to mark all custom flags as temporary or permanent.
6. In the "Variations" section, edit the flag variation **Names**.
7. In the "Default variations" section, choose which default variations to serve when the flag is toggled **On** or **Off**.
8. In the "Tags" section, type to add tags to each new flag by default.
9. Click **Save**.

Verify that the updated default template settings are correct by navigating to the **Flags** list and creating a new custom flag.
