--- 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 xep-0045 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 xep-0045. 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 xep-0045. 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. ```