Skip to content

Message Base

In ENiGMA½, a message base is divided into two logical grouping components: Message Conferences and Areas. Message conferences are top level containers while areas are for a specific topic. Messages are always stored internally with a area tag.

Message Conferences are the top level container for 1:n Message Areas via the messageConferences block in config.hjson. A common setup may include a local conference and one or more conferences each dedicated to a particular message network such as fsxNet, ArakNet, etc.

Each conference is represented by a entry under messageConferences. Each entries top level key is it’s conference tag.

Config ItemRequiredDescription
nameYesFriendly conference name
descYesFriendly conference description.
sortNoSet to a number to override the default alpha-numeric sort order based on the name field.
defaultNoSpecify true to make this the default conference (e.g. assigned to new users)
areasYesContainer of 1:n areas described below
acsNoA standard ACS block. See ACS below.

An optional standard ACS block can be supplied with the following rules:

  • read: ACS required to read (see) this conference. Defaults to GM[users].
  • write: ACS required to write (post) to this conference. Defaults to GM[users].
{
messageConferences: {
local: { // conference tag
name: Local
desc: Local discussion
sort: 1
default: true
acs: {
read: GM[users] // default
}
}
}
}

Message Areas are topic specific containers for messages that live within a particular conference. The top level key for an area sets it’s area tag. For example, “General Discussion” may live under a Local conference while an fsxNet conference may contain “BBS Discussion”.

Config ItemRequiredDescription
nameYesFriendly area name.
descYesFriendly area description.
sortNoSet to a number to override the default alpha-numeric sort order based on the name field.
defaultNoSpecify true to make this the default area (e.g. assigned to new users)
acsNoA standard ACS block. See ACS below.
maxMessagesNoThe maximum number of messages to keep in the area. Defaults to 1024.
maxAgeDaysNoThe maximum age of messages to keep in the area. Defaults to 0, which means unlimited.
autoSignaturesNoSet to false to disable auto-signatures in this area.
realNamesNoSet to true to use real names in this area.

The default values for maxMessages and maxAgeDays can be changed globally in core/config_default.js, they’re located in the section messageAreaDefaults. The same file also defines several default events to be scheduled, which are located under eventScheduler. For example, the trimMessageAreas event is run every 24 hours and defines that the action trimMessageAreasScheduledEvent is performed.

An optional standard ACS block can be supplied with the following rules:

  • read: ACS required to read (see) this area. Defaults to GM[users].
  • write: ACS required to write (post) to this area. Defaults to GM[users].
messageConferences: {
local: {
// ... see above ...
areas: {
enigma_dev: { // Area tag - required elsewhere!
name: ENiGMA 1/2 Development
desc: ENiGMA 1/2 development and discussion!
sort: 1
default: true
maxMessages: 2000 // keep at most 2000 messages
maxAgeDays: 365 // delete anything older than 1 year
acs: {
read: GM[users] // default
write: GM[l33t] // super elite ENiGMA 1/2 users!
}
}
}
}
}

FidoNet style .na files as well as legacy AREAS.BBS files in common formats can be imported using oputil.js mb import-areas. See The oputil CLI for more information and usage.