---
title: Chat Room Configuration and Administration
description: A console-based XMPP client for power users.
sidebar:
  order: 10
---

## Creating a room

Chat rooms are created when you join a room that does not yet exist, using the [`/join`](/command-reference#join) command.

If the server only supports an older version of the groupchat protocol, no further action is required, and other users may join the room.

Servers supporting <a href="http://xmpp.org/extensions/xep-0045.html" target="_blank" rel="noopener noreferrer">xep-0045</a> will create the room, which will be locked until the room has been configured, or the default configuration has been accepted.

To accept the default configuration and unlock the room:

```bash
/room accept
```

To view and edit the room configuration (see the next section for details):

```bash
/room config
```

To cancel room creation and destroy the room:

```bash
/room destroy
```

## Configuring a room

At any stage, users with appropriate privileges may configure a room with the following command:

```bash
/room config
```

A new window will be opened, and the room configuration form displayed. Each field in the form is given a tag (e.g. "field2").

![CProof room configuration](@assets/roomconfigform.png)

Form fields can be manipulated using the field tag and the value to set, add or remove depending on the field type. For example:

```bash
/field1 "New room name"
/field3 off
/field5 remove visitor
/field13 anyone
/field18 add anotheruser@openfire.local
```

For more information on how to manipulate a specific field, use the /form help command specifying the field tag, e.g.:

```bash
/form help field12
```

At any time whilst the form is being edited, the latest values can be shown with:

```bash
/form show
```

To save the changes:

```bash
/form submit
```

To discard the changes:

```bash
/form cancel
```

## Destroying a room

If a user has appropriate privileges a room can be destroyed at any time using the following command:

```bash
/room destroy
```

## Kicking occupants

Users with appropriate privileges may kick occupants from a room:

```bash
/kick nova
```

An optional reason may be supplied:

```bash
/kick nova Please do not use foul language.
```

## Banning users

Users with appropriate privileges may ban users permanently from a room, banning is carried out using the users Jabber ID rather than their nickname in the room:

```bash
/ban molly@chat.org
```

An optional reason may be supplied:

```bash
/ban molly@chat.org You may not enter this room anymore.
```

## Managing occupant roles

Roles specify an occupant's privileges within a room for the duration of one particular visit to that room. The possible roles, and the privileges associated with them are defined in <a href="http://xmpp.org/extensions/xep-0045.html#roles" target="_blank" rel="noopener noreferrer">xep-0045</a>.

Roles are set using an occupant's room nickname, the user must have the appropriate privileges to run the following commands.

To show occupants of all roles:

```bash
/role list
```

To show occupants with a specific role:

```bash
/role list moderator
/role list participant
/role list visitor
```

To change an occupant's role, for example to set the occupant with nick _bobmould_ to have role _participant_:

```bash
/role set participant bobmould
```

An optional reason may be specified:

```bash
/role set participant bobmould You may now speak!
```

## Managing user affiliations

Affiliations specify a user's privileges for a room across visits to that room. The possible affiliations, and the privileges associated with them are defined in <a href="http://xmpp.org/extensions/xep-0045.html#affil" target="_blank" rel="noopener noreferrer">xep-0045</a>.

Affiliations are set using a user's JID, the user must have the appropriate privileges to run the following commands.

To show users of all affiliations:

```bash
/affiliation list
```

To show users with a specific affiliation:

```bash
/affiliation list owner
/affiliation list admin
/affiliation list member
/affiliation list outcast
```

To change a user's affiliation, for example to set the user with JID *bob_mould@chat.org* to have affiliation member:

```bash
/affiliation set member bob_mould@chat.org
```

An optional reason may be specified:

```bash
/affiliation set member bob_mould@chat.org Because you come here so often.
```
