> For the complete documentation index, see [llms.txt](https://docs.ohalee.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ohalee.com/products/ultimateguilds/configuration.md).

# Configuration

## Configuration File

```yaml
database:
  # H2 or MariaDB
  type: "H2"
  mariadb:
    host: "localhost"
    port: 3306
    username: "root"
    password: "password"
    database: "ultimateguilds"

  # Redis is only used for multiserver support
  redis:
    host: "localhost"
    port: 6379
    username: ""
    password: "password"
    database: 0
    clientName: "UltimateGuilds"
    minimumPoolSize: 5
    maximumPoolSize: 10

# Enable multiserver support with Redis. This allows guilds to be shared across multiple servers.
# If you run only one server, do not enable this
enable-proxy-support: false

date-format: "HH:mm:ss dd/MM/yyyy"

cooldown:
  disband-confirm-time: 15

limits:
  name:
    max-length: 10
    # Regex supported
    allowed-characters:
      - "[a-zA-Z0-9_]+"
  tag:
    max-length: 10
    format: "<yellow>[<tag>]"
    # Regex supported
    allowed-characters:
      - "[a-zA-Z0-9_]+"
  description:
    max-length: 128

# Default is at the creation of the guild
# The other is when a player executes /guild maxmembers
# permission: guild.maxmembers.<group>
#             guild.maxmembers.vip
#             guild.maxmembers.admin
max-members:
  default: 10
  vip: 50
  admin: 100

luckperms:
  use-prefix-in-messages: true

prefix:
  # Set empty to disable -> ""
  set-tag: "lp user %uuid% meta setsuffix 1 \"%tag%\""
  # Set empty to disable -> ""
  remove-tag: "lp user %uuid% meta removesuffix 1"

gui:
  common:
    fill:
      material: BLACK_STAINED_GLASS_PANE
      displayName: "gui.common.fill.name"
      slot: "0-53"
  no-guild:
    info:
      material: PAPER
      displayName: "gui.no_guild.info.name"
      lore: "gui.no_guild.info.lore"
      row: 2
      column: 4
  guild:
    info:
      material: BOOK
      displayName: "gui.guild.info.name"
      lore: "gui.guild.info.lore"
      row: 0
      column: 4
  other:
    filter:
      material: HOPPER
      displayName: "gui.other.filter.name"
      lore: "gui.other.filter.lore"
      row: 0
      column: 1
    log:
      material: PAPER
      displayName: "gui.other.log.name"
      lore: "gui.other.log.lore"
    invite:
      material: PAPER
      displayName: "gui.other.invite.name"
      lore: "gui.other.invite.lore"
    ban:
      material: BARRIER
      displayName: "gui.other.ban.name"
      lore: "gui.other.ban.lore"
    member:
      material: PLAYER_HEAD
      displayName: "gui.other.member.name"
      lore: "gui.other.member.lore"
    empty-member-slot:
      material: GRAY_STAINED_GLASS_PANE
      displayName: "gui.other.empty_member_slot.name"
    back:
      material: ARROW
      displayName: "gui.other.back.name"
    next-page:
      material: ARROW
      displayName: "gui.other.next_page.name"
    previous-page:
      material: ARROW
      displayName: "gui.other.previous_page.name"

confirm-gui:
  confirm:
    material: LIME_STAINED_GLASS_PANE
    displayName: "confirm-gui.confirm.name"
    row: 0
    column: 3
  cancel:
    material: RED_STAINED_GLASS_PANE
    displayName: "confirm-gui.cancel.name"
    row: 0
    column: 5
```
