Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
172 changes: 90 additions & 82 deletions _datafiles/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -51,16 +51,16 @@ Server:
# Commands to run when a user logs in. These commands are run by the user
# and can be anything they have access to.
OnLoginCommands:
- 'emote @appears before you in a flash of <ansi fg="yellow-bold">⚡l<ansi fg="white-bold">i</ansi>gh<ansi fg="white-bold">tn</ansi>i<ansi fg="white-bold">n</ansi>g⚡</ansi>!'
- print
- motd
- print
- online
- print
- inbox check
- print
- mudletmap
- checkclient
- 'emote @appears before you in a flash of <ansi fg="yellow-bold">⚡l<ansi fg="white-bold">i</ansi>gh<ansi fg="white-bold">tn</ansi>i<ansi fg="white-bold">n</ansi>g⚡</ansi>!'
- print
- motd
- print
- online
- print
- inbox check
- print
- mudletmap
- checkclient
# - Motd -
# Message of the day. This is displayed when the motd command is run.
Motd: '{{ t "Motd" }}'
Expand All @@ -77,12 +77,12 @@ Server:
# It is a good idea to lock configs related to folder/file paths to prevent
# accidental changes that could break the game.
Locked:
- FilePaths
- Server.CurrentVersion
- Server.NextRoomId
- Server.Seed
- Server.OnLoginCommands
- Server.BannedNames
- FilePaths
- Server.CurrentVersion
- Server.NextRoomId
- Server.Seed
- Server.OnLoginCommands
- Server.BannedNames

################################################################################
#
Expand Down Expand Up @@ -140,7 +140,6 @@ LootGoblin:
# suddenly the goblin shows up.
IncludeRecentRooms: true


################################################################################
#
# ENGINE TIMING
Expand Down Expand Up @@ -321,34 +320,44 @@ Integrations:
Discord:
# Optional webhook URL to send mud event messages to, such as joins/disconnects
# Can also be set via environment variable: DISCORD_WEBHOOK_URL
WebhookUrl: ''

WebhookUrl: ""

################################################################################
#
# TEXT FORMATS
# Basic text strings that occur often, and may need customization
#
################################################################################
TextFormats:
# - Prompt -
# Default prompt formatting.
# See: "help prompt" in game to learn more about this.
Prompt: '{8}[{t} {T} {255}HP:{hp}{8}/{HP} {255}MP:{13}{mp}{8}/{13}{MP}{8}]{239}{h}{8}:'
# - TimeFormat -
# When real world time is shown, what format should be used?
# This uses a Go time format string, which is kinda weird.
# See: https://go.dev/src/time/format.go
Time: 'Monday, 02-Jan-2006 3:04:05PM'
# - TimeFormatShort -
# Same as TimeFormat, but shorter form
TimeShort: 'Jan 2 ''06 3:04PM'
# - EnterRoomMessageWrapper -
# Decorate entrance text with this. Put a %s where the message should be.
EnterRoomMessageWrapper: " <ansi fg=\"enters-message\"> >>> </ansi>%s\n"
# - ExitRoomMessageWrapper -
# Decorate exit text with this. Put a %s where the message should be.
ExitRoomMessageWrapper: " <ansi fg=\"leaves-message\"> >>> </ansi>%s\n"
# USER INTERFACE
# Visual preferences and text formatting options
#
################################################################################
UserInterface:
# - Formats -
# Text format strings that control how various messages appear
Formats:
# - Prompt -
# Default prompt formatting.
# See: "help prompt" in game to learn more about this.
Prompt: "{8}[{t} {T} {255}HP:{hp}{8}/{HP} {255}MP:{13}{mp}{8}/{13}{MP}{8}]{239}{h}{8}:"
# - Time -
# When real world time is shown, what format should be used?
# This uses a Go time format string, which is kinda weird.
# See: https://go.dev/src/time/format.go
Time: "Monday, 02-Jan-2006 3:04:05PM"
# - TimeShort -
# Same as Time, but shorter form
TimeShort: "Jan 2 '06 3:04PM"
# - EnterRoomMessageWrapper -
# Decorate entrance text with this. Put a %s where the message should be.
EnterRoomMessageWrapper: " <ansi fg=\"enters-message\"> >>> </ansi>%s\n"
# - ExitRoomMessageWrapper -
# Decorate exit text with this. Put a %s where the message should be.
ExitRoomMessageWrapper: " <ansi fg=\"leaves-message\"> >>> </ansi>%s\n"
# - Display -
# Visual display preferences
Display:
# - ShowEmptyEquipmentSlots -
# Whether to show empty equipment slots when looking at characters/mobs
# true = show all slots including empty ones (traditional MUD style)
# false = only show equipped items (cleaner display)
ShowEmptyEquipmentSlots: true

################################################################################
#
Expand All @@ -359,15 +368,15 @@ TextFormats:
Translation:
# - DefaultLanguage -
# Specify the default game language (fallback)
DefaultLanguage: 'en'
DefaultLanguage: "en"
# - Language -
# Specify the game language
Language: 'en'
Language: "en"
# - LanguagePaths -
# Specify the game language file paths
LanguagePaths:
- '_datafiles/localize'
- '_datafiles/world/default/localize'
- "_datafiles/localize"
- "_datafiles/world/default/localize"

################################################################################
#
Expand Down Expand Up @@ -412,7 +421,7 @@ Network:
# Whether Admin/Mod users get timed out when reaching MaxIdleSeconds
# If set to false, Admins & Mods never get force disconnected.
TimeoutMods: false
# - ZombieSeconds -
# - ZombieSeconds -
# How many seconds a character stays active/in game after a network connection
# is lost. Set to 0 to instantly log out characters (exploitable).
ZombieSeconds: 60
Expand Down Expand Up @@ -488,7 +497,7 @@ Validation:
# (This is a regular expression, you must understand how to create them)
# Set to empty to disable. If the regex is invalid it will revert to the
# default of '^[a-zA-Z0-9_]+$'
NameRejectRegex: '^[a-zA-Z0-9_]+$'
NameRejectRegex: "^[a-zA-Z0-9_]+$"
NameRejectReason: "Must only contain Alpha-numeric and underscores."
# - BannedNames -
# Names that are not allowed to be used by players. This is a good place to
Expand All @@ -502,39 +511,39 @@ Validation:
# that contain that name. For example, "*admin*" would ban "admin", "superadmin",
# "administrator", etc.
BannedNames:
- "*admin*"
- "*moderator*"
- "player*"
- "user*"
- "me"
- "myself"
- "self"
- "us"
- "you"
- "them"
- "everyone"
- "someone"
- "anyone"
- "nobody"
- "somebody"
- "anybody"
- "none"
- "nothing"
- "something"
- "anything"
- "everything"
- "all"
- "north*"
- "south*"
- "east*"
- "west*"
- "up"
- "down"
- "chest"
- "door"
- "new"
- "join"
- "register"
- "*admin*"
- "*moderator*"
- "player*"
- "user*"
- "me"
- "myself"
- "self"
- "us"
- "you"
- "them"
- "everyone"
- "someone"
- "anyone"
- "nobody"
- "somebody"
- "anybody"
- "none"
- "nothing"
- "something"
- "anything"
- "everything"
- "all"
- "north*"
- "south*"
- "east*"
- "west*"
- "up"
- "down"
- "chest"
- "door"
- "new"
- "join"
- "register"

################################################################################
#
Expand All @@ -555,7 +564,6 @@ Roles:
builder: ["room.info", "build"]
helper: ["paz", "teleport.playername", "locate"]


################################################################################
#
# Modules
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{{ .Name }} ({{ .AlignmentName }})
{{- $tnl := .XPTNL -}}
{{- $pct := (pct .Experience $tnl ) -}}

Description:
{{ .GetDescription }}

Health Status: {{ .GetHealthAppearance }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
Equipment:
{{ if not .Equipment.Weapon.IsDisabled }}Weapon: {{ .Equipment.Weapon.NameSimple }}
{{ end -}}
{{- if not .Equipment.Offhand.IsDisabled }}Offhand: {{ .Equipment.Offhand.NameSimple }}
{{ end -}}
{{- if not .Equipment.Head.IsDisabled }}Head: {{ .Equipment.Head.NameSimple }}
{{ end -}}
{{- if not .Equipment.Neck.IsDisabled }}Neck: {{ .Equipment.Neck.NameSimple }}
{{ end -}}
{{- if not .Equipment.Body.IsDisabled }}Body: {{ .Equipment.Body.NameSimple }}
{{ end -}}
{{- if not .Equipment.Belt.IsDisabled }}Belt: {{ .Equipment.Belt.NameSimple }}
{{ end -}}
{{- if not .Equipment.Gloves.IsDisabled }}Gloves: {{ .Equipment.Gloves.NameSimple }}
{{ end -}}
{{- if not .Equipment.Ring.IsDisabled }}Ring: {{ .Equipment.Ring.NameSimple }}
{{ end -}}
{{- if not .Equipment.Legs.IsDisabled }}Legs: {{ .Equipment.Legs.NameSimple }}
{{ end -}}
{{- if not .Equipment.Feet.IsDisabled }}Feet: {{ .Equipment.Feet.NameSimple }}
{{ end }}
Carrying: {{ $itmCt := len .ItemNames }}{{ if eq $itmCt 0 }}no{{ else if lt $itmCt 4 }}a few{{ else if lt $itmCt 7 }}several{{ else }}lots of{{ end }} objects
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
{{/* Screenreader-friendly template for looking at items */}}
You look at the {{ .Item.Name }} {{ .Location }}:

{{ .ItemSpec.Description }}
{{- if eq .Type "readable" }}
You should probably read this.
{{- else if eq .Subtype "drinkable" }}
You could probably drink this.
{{- else if eq .Subtype "edible" }}
You could probably eat this.
{{- else if eq .Type "lockpicks" }}
These are used with the picklock command.
{{- else if eq .Type "key" }}
When you find the right door, keys are added to your keyring automatically.
{{- else if eq .Subtype "wearable" }}
It looks like wearable {{ .ItemSpec.Type }} equipment.
{{- end }}
{{- if eq .Type "weapon" }}
It looks like a {{ .WeaponHands }}-Handed weapon.
{{- if eq .WeaponType "claws" }}
It looks like a claws weapon. These can be dual wielded without training.
{{- else if eq .WeaponType "shooting" }}
This can fired into adjacent areas. (help shoot)
{{- end }}
{{- if gt .WaitRounds 0 }}
It requires an extra {{ .WaitRounds }} round(s) between attacks.
{{- end }}
{{- end }}
{{- if .HasUses }}
It has {{ .UsesRemaining }}/{{ .MaxUses }} uses remaining.
{{- end }}
{{- if index .Adjectives "cursed" }}
It's CURSED! Once equipped, it cannot be removed without magical help.
{{- end }}
{{- if index .Adjectives "enchanted" }}
It glows with a magical aura (enchantment level {{ .EnchantLevel }}).
{{- end }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
{{/* Template for looking at items */}}
You look at the <ansi fg="item">{{ .Item.DisplayName }}</ansi> {{ .Location }}:

{{ .ItemSpec.Description }}
{{- if eq .Type "readable" }}
- You should probably <ansi fg="command">read</ansi> this.
{{- else if eq .Subtype "drinkable" }}
- You could probably <ansi fg="command">drink</ansi> this.
{{- else if eq .Subtype "edible" }}
- You could probably <ansi fg="command">eat</ansi> this.
{{- else if eq .Type "lockpicks" }}
- These are used with the <ansi fg="command">picklock</ansi> command.
{{- else if eq .Type "key" }}
- When you find the right door, keys are added to your keyring automatically.
{{- else if eq .Subtype "wearable" }}
- It looks like wearable <ansi fg="magenta">{{ .ItemSpec.Type }}</ansi> equipment.
{{- end }}
{{- if eq .Type "weapon" }}
- It looks like a <ansi fg="yellow">{{ .WeaponHands }}-Handed</ansi> weapon.
{{- if eq .WeaponType "claws" }}
- It looks like a <ansi fg="yellow">claws</ansi> weapon. These can be dual wielded without training.
{{- else if eq .WeaponType "shooting" }}
- This can fired into adjacent areas. (<ansi fg="command">help shoot</ansi>)
{{- end }}
{{- if gt .WaitRounds 0 }}
- It requires an extra <ansi fg="red">{{ .WaitRounds }}</ansi> round(s) between attacks.
{{- end }}
{{- end }}
{{- if .HasUses }}
- It has <ansi fg="yellow">{{ .UsesRemaining }}/{{ .MaxUses }}</ansi> uses remaining.
{{- end }}
{{- if index .Adjectives "cursed" }}
- It's <ansi fg="red-bold">CURSED!</ansi> Once equipped, it cannot be removed without magical help.
{{- end }}
{{- if index .Adjectives "enchanted" }}
- It glows with a <ansi fg="enchanted">magical aura</ansi> (enchantment level {{ .EnchantLevel }}).
{{- end }}
Loading