Note: These instructions were made using a 64-bit windows 7 sp1 PC with UAC turned off. YMMV on different OS's.
Install Worldgroup 3.30 using setup.exe. - wg330.zip
NOTE: After you run setup you will see a progress bar and then it may/will go away and appear that nothing is happening. Just be patient, it could take a minute or two, but eventually another screen will come up.
NOTE 2: Some people have had issues installing it from extended paths. Try extracting it to the root of the C drive to something like
c:\wginstall
and installing it from there.
NOTE 3: Another possible fix if the setup fails to progress: Open task manager -> details tab -> right click setup.exe -> choose "analyze wait chain" -> end any processes that it's waiting on.
w32mkset.exe
from the C:\WGSERV
folder and set open files set current to 100, and set handles to 100 (this prevents various BTRIEVE errors.files=250
to c:\windows\system32\config.nt
After reboot/install, from the start menu, go into Worldgroup Server -> Offline Utilities -> and then select and run disable or re-enable selected modules
.
The only required modules are listed below. Disable all the rest.
CLISRC: Support Client/Server users
-> turn that off
. Client server is a GUI interface WG made that has no use to us. Another example, under Sign-up and account display/edit
-> disable all the sign-up questions you don't care about, like "company name."Security & Accounting
and do the same. Go through everything. Stuff you don't want people to do, assign it the SYSOP
key.Hardware Setup
-- Under Core -> GROUP1
Change the number of channels to 254 (leave one open)C:\WGSERV\wgsrunmt.EXE
-- the menu editor. You're going to get two popups about things being disabled that are in the menu.NOTE: Just because you remove the menu item doesn't mean people can't get to it. You need to disable the module for that.
C:\WGSERV\wgsappgo.exe
, log in and make sure the menu works and you can log out./go sysop
suspend test
NOTE: Having this enabled seemed to cause weird issues (at least on windows 7 64-bit). Sometimes no input would be allowed (for anyone on the board!) until i pressed something on the console. Other times the system would be laggy for remote users.
icomp WCCMMUD.Z c:\WGSERV\ -d -i -o
to extract mud to your WG folderWGSERV
folder and run copy wcc\*.vir wcc\*.dat
WCCHSE.ZIP
, WCCEMB.ZIP
, WCCBAN.ZIP
, WCCSTA.ZIP
and WCCSTO.ZIP
. Go into your WGSERV (C:\WGSERVER
) folder and right-click on each of those zip files and extract their contents into C:\WGSERV
(right-click and "extract here" with most programs, like 7zip).MajorMUD_HSE_FILES_ODSBBS.zip
(download) to C:\WGSERV
NEWHAVEN.TXT
and SILVRMRE.TXT
. You can create blank files from DOS if you want by typing echo.>NEWHAVEN.TXT
no
10
"
runic coin
-100
=set
;set
10
100
0
1000
no
yes
C:\WGSERV\wgsrunmt.EXE
M
(or whatever you want)MajorMUD
MAJORMUD
MAJORMUD
if not already and press F2
MajorMUD
F10
to ExitNOTE: With the v1.11p dats that I installed, whenever the board started up and ran through the update file, I'd end up with a "corrupt" (per-say) textblock database. It would add the misc characters to the end of each block. You can strip these with nightmare but some textblocks are close to full and will become broken by this. If you fire up nightmare and build a new update file (full or blank) before launching the board for the first time you will not run into this issue.
SYSOP
A
for Addon module activation codes1
for Mod 1, and enter the activation code.Optional, but highly recommended: Optimize the btrieve settings (pretty sure this is not necessary if you plan to upgrade to the new pervasive engine, though I suppose it doesn't hurt).
Registry Key Downloads:
btrieve-settings-32bit.reg or btrieve-settings-64bit.reg
Note: on a 64bit system you will find this under HKEY_LOCAL_MACHINE\Software\WOW6432Node instead of the ones listed below.
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Btrieve Technologies]
[HKEY_LOCAL_MACHINE\SOFTWARE\Btrieve Technologies\Microkernel Engine]
[HKEY_LOCAL_MACHINE\SOFTWARE\Btrieve Technologies\Microkernel Engine\Version 6.15]
[HKEY_LOCAL_MACHINE\SOFTWARE\Btrieve Technologies\Microkernel Engine\Version 6.15\Microkernel Interface]
[HKEY_LOCAL_MACHINE\SOFTWARE\Btrieve Technologies\Microkernel Engine\Version 6.15\Microkernel Interface\Settings]
"Target Engine"=dword:00000000
[HKEY_LOCAL_MACHINE\SOFTWARE\Btrieve Technologies\Microkernel Workstation Engine]
[HKEY_LOCAL_MACHINE\SOFTWARE\Btrieve Technologies\Microkernel Workstation Engine\Version 6.15]
[HKEY_LOCAL_MACHINE\SOFTWARE\Btrieve Technologies\Microkernel Workstation Engine\Version 6.15\Microkernel Interface]
[HKEY_LOCAL_MACHINE\SOFTWARE\Btrieve Technologies\Microkernel Workstation Engine\Version 6.15\Microkernel Interface\Settings]
"Load Retries"=dword:00000005
"Local"=dword:00000001
"Requester"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Btrieve Technologies\Microkernel Workstation Engine\Version 6.15\Settings]
"Max Locks"=dword:00000014
"Logging Fmt"="6"
"Compression Buffer Size"=dword:00000400
"Extended Buffer Size"=dword:00004000
"Merge Sort Buffer Size"=dword:00000000
"Max Transactions"=dword:0000001e
"Transaction Durability"="0"
"Disk Wait Limit"=dword:000003e8
"Page Group Size"=dword:0000001e
"Max Clients"=dword:0000001e
"Worker Threads"=dword:00000001
"Background Threads"=dword:0000000c
"Preallocate"="0"
"Minimal States"="1"
"Home Directory"=dword:00000000
"Work Space"=""
"Syserr Notify"="0"
"File Sharing On Local Drives"="1"
"File Sharing On Remote Drives"="1"
"File Sharing Enable Bias"="1"
"File Sharing Max SysTrans Count"=dword:00000001
"Startup Logo"="0"
"Hide Icon"="1"
"Delete Tmp Files"="1"
"Trace File"="C:\WGSERV\MKDEWE.TRA"
"Trace Databuf Len"=dword:00000020
"Trace Keybuf Len"=dword:00000020
"Trace Ops"=hex:
"Max Files"=dword:000001f4
"Max Handles"=dword:000001f4
"Balanced Trees"="0"
"Create 5x Files"="0"
"Logging On"="0"
"Cache Size"=dword:00100000
"Max Communication Buffer Size"=dword:00010123
"Systrans Bundle Limit"=dword:00000064
"Systrans Time Limit"=dword:000003e8
"Trace"="0"
PSQL-Server-9.50.077.002-Win32
for me ), enter key, complete installPSQLHotFixSetup952.exe
for me )C:\WGSERV
, rename wbtrv32.dll
to wbtrv32.dll.old
C:\PVSW\bin\wbtrv32.dll
into C:\WGSERV
wbtrv32.dll
into your NMR installation directory C:\Program Files (x86)\Nightmare Redux
C:\WGSERV
, do a search for \*.dat
. Highlight them all and copy them into a backup folder.C:\PVSW\\bin\rbldgui.exe
C:\WGSERV
*.dat
into the filename field and press enter. screen will refresh with all the .dat's showing.\*.VIR
files\*.VIR
files under C:\WGSERV\GCVIRDAT
ICOMP.exe
from your MajorMUD installation files (or from somewhere else) into the FU Globals foldericomp DATA.Z c:\WGSERV\ -d -i -o
DIAL*.DAT
and DIAL*.VIR
files (see above)TOP
to editG
somewhere:
FU Globals
SYSOP
hide
FUGLOBALS
F2
on FUGLOBALS
SYSOP
, Module Name: FU Globals
F10
to exitG
to enter FU Globals
C
E
for edit, and then type cmd <COMMAND>
to edit it
cmd ;repeat
=> change the ;repeat
to =r
(no one likes typing "=repeat" and we change ;repeat to leave =repeat for anyone that has that macro'd)cmd ;#
=> change ;#
to just #
cmd =fu
=> disable this command to disable the sending of FU gramscmd =tl
=> change ;t
l to shar
and =tl
to sha
-- parts 1/3 and 2/3 to disable the share command in mud and avoids an exploitcmd ;ask
=> change ;ask
to share
-- part 3/3 to disable the share command to prevent an exploit.forg
, "forgi
, forgiv
, and forgive
to prevent another exploit. Assign them to other vars like "rt" (read FU Grams to you), rf
(from you), td
(time of day)set
, mail
, rpedit
, macros1
, macros2
MajorMUD
on one of the lines to disable the alternate GO
commands in MUD1
for config screen 1
INVISIBLEKEY
Default # of minutes of NO ACTIVITY before AUTO-AFK
to 0
NOTE: Dialsoft Control v2.01 DOES NOT WORK... at least I couldn't get it to work. With v2.01 anyone that did not have a master key basically has no keyring. I could not find any way to fix this. Works fine in v5.62.
ICOMP.exe
from your majormud installation files (or from somewhere else) into the FU Globals foldericomp DATA.Z c:\WGSERV\ -d -i -o
DIALCTRL.DAT
and DIALCTRL.VIR
files (see above)F2
on TOP to editC
somewhere, short description: Dialsoft Control, key required: SYSOP
, no key: hide
, destination page: CONTROL
F2
on CONTROLSYSOP
, Module Name: Dialsoft Control
F10
to exitC
to enter ControlC
to create configuration file (not sure if this is necessary or not)config
SYSOP
New user mail notification accounts/forums #1
NO
NO
NO
NO
G
for global and set SYSOP for key required for everything there.MM
for Miscellaneous
DIALGLO
-> FUL5H (sysop user list #1 header) and click WGSDRAW
Real Name
to IP ADDRESS
FUO\_REALNAME
to DIA\_IPADDRESS
right in the window there.Filename | Command Line | Description |
---|---|---|
C:\WGSERV\wgsappgo.EXE | Start Worldgroup | |
C:\WGSERV\WGSCNF.exe | Worldgroup Configurator | |
-L1 | Launch Hardware Setup | |
-L3 | Launch Security & Auditing | |
-L4 | Launch General Setup | |
-L6 | Launch Text Block Editor | |
C:\WGSERV\WGSUMENU.exe | Offline Utilities | |
C:\WGSERV\wgsrunmt.EXE | Menu Editor | |
C:\WGSERV\WGSCLEAN.BAT | This batch file runs during BBS Cleanup (contents below) | |
C:\WGSERV\non-sga-check.bat | This batch file runs during BBS Cleanup (contents below) | |
C:\WGSERV\non-sga-check.py | Python script run by non-sga-check.bat (contents below) |
|
C:\WGSERV\non-sga-check.log | Results of non-sga-check.py runs |
This Python script processes the wgsaudit.adt
audit file to detect unauthorized clients by scanning for IP addresses associated with "NON-SGA CLIENT" entries, then adds any new, unblocked IPs to blocklist.txt
. It first loads the blocklist into a set for efficient lookup, then parses the audit file using a regular expression to identify IP addresses. If a new IP is found, it is appended to the blocklist, and the event is logged. The script logs all actions to both a log file and the console, and terminates if the necessary files are missing.
non-sga-check.bat
and non-sga-check.py
files in the c:\WGSERV
folderblocklist.txt
in your c:\WGSERV
folder echo.>c:\WGSERV\blocklist.txt
blocklist.txt
non-sga-check.bat
to your WGSCLEAN.BAT
filenon-sga-check.bat
(make sure your path to python.exe is correct)
@echo off
SET "BATDIR=%~dp0"
"%LocalAppData%\Programs\Python\Python311\python.exe" "%BATDIR%non-sga-check.py""
import os
import re
import sys
from datetime import datetime
# Constants for file paths (use absolute paths for Windows)
AUDIT_FILE_PATH = r"C:\WGSERV\wgsaudit.adt"
BLOCKLIST_FILE_PATH = r"C:\WGSERV\blocklist.txt"
LOG_FILE_PATH = os.path.join(os.path.dirname(__file__), "non-sga-check.log")
# Function to log messages to the log file
def log_message(message):
with open(LOG_FILE_PATH, "a") as log_file:
log_file.write(f"{datetime.now()}: {message}\n")
print(message) # Also print to console
# Function to read IPs from blocklist and store in a set for fast lookup
def load_blocked_ips(blocklist_path):
if not os.path.exists(blocklist_path):
log_message(f"Error: blocklist file '{blocklist_path}' not found.")
sys.exit(1)
with open(blocklist_path, "r") as block_file:
blocked_ips = {line.strip() for line in block_file if line.strip()}
log_message(f"Loaded {len(blocked_ips)} blocked IPs.")
return blocked_ips
# Function to append a new IP to the blocklist
def add_ip_to_blocklist(ip, blocklist_path):
with open(blocklist_path, "a") as block_file:
block_file.write(f"{ip}\n")
log_message(f"{ip} added to block list.")
# Function to find IPs in the audit file and add any new ones to the blocklist
def process_audit_file(audit_file_path, blocked_ips, blocklist_path):
if not os.path.exists(audit_file_path):
log_message(f"Error: audit file '{audit_file_path}' not found.")
sys.exit(1)
ip_pattern = re.compile(r"\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}")
new_ip_count = 0
with open(audit_file_path, "r") as audit_file:
for line in audit_file:
if "NON-SGA CLIENT" in line:
match = ip_pattern.search(line)
if match:
ip = match.group()
if ip not in blocked_ips:
add_ip_to_blocklist(ip, blocklist_path)
blocked_ips.add(ip)
new_ip_count += 1
log_message(f"Processed audit file. Added {new_ip_count} new IPs to blocklist.")
# Main execution
def main():
# Load the blocked IPs from the blocklist
blocked_ips = load_blocked_ips(BLOCKLIST_FILE_PATH)
# Process the audit file and update blocklist
process_audit_file(AUDIT_FILE_PATH, blocked_ips, BLOCKLIST_FILE_PATH)
log_message("Script execution completed.")
if __name__ == "__main__":
main()
This assumes access to rar, curl, restic, and the non-sga-check.bat/python script(s) above.
This script performs the following actions:
WCCMMUD.log
and non-sga-check.log
files to C:\BACKUPS.C:\WGSERV
folder into a RAR file and saves it in C:\BACKUPS
.WCCMMUD.log
and non-sga-check.log
files back to the C:\WGSERV
folder.C:\BACKUPS
.C:\BACKUPS
to a Restic repository in Backblaze B2.WGSCLEAN.BAT
@echo off
:: set dicord webhook
SET WEBHOOK_URL=https://discordapp.com/api/webhooks/xxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxxxx
:: set folders
SET BACKUP_FOLDER=c:\backup
SET WGSERV_FOLDER=c:\WGSERV
:: set files to exclude from backup
SET EXCLUDE_FILES=wccmmud.log,non-sga-check.log
:: set backup retention
SET LOCAL_KEEP_DAYS=7
SET RESTIC_KEEP_DAYS=7
SET RESTIC_KEEP_WEEKS=8
SET RESTIC_KEEP_MONTH=12
:: define program locations
SET RESTIC_EXE=c:\util\restic_0.12.1_windows_amd64.exe
SET RAR_EXE=C:\PROGRA~1\WinRAR\rar.exe
SET CURL_EXE=%systemroot%\system32\curl.exe
:: set restic repository settings
SET B2_ACCOUNT_ID=xxxxxxxxxxxxxxxxxxx
SET B2_ACCOUNT_KEY=xxxxxxxxxxxxxxxxxxx
SET RESTIC_REPOSITORY=b2:some-bucket:/
SET RESTIC_PASSWORD=xxxxxxxxxxxxxxxxxxx
:: send discord notification
%CURL_EXE% -H "Content-Type: application/json" -d "{\"username\": \"Orfeo\", \"content\":\"BBS shut down. Starting backup.\"}" %WEBHOOK_URL%
:: get todays date in MM-DD-YYYY format
for /f "usebackq skip=1 tokens=1-3" %%g in (`wmic Path Win32_LocalTime Get Day^,Month^,Year ^| findstr /r /v "^$"`) do (
set _day=00%%g
set _month=00%%h
set _year=%%i
)
set _month=%_month:~-2%
set _day=%_day:~-2%
set PRETTY_DATE=%_month%-%_day%-%_year%
:: run non-sga ip block script
call %WGSERV_FOLDER%\non-sga-check.bat
:: move the files to exclude out of the WGSERV folder
for %%X in (%EXCLUDE_FILES%) do move %WGSERV_FOLDER%\%%X %BACKUP_FOLDER%
:: compress the WGSERV folder
"%RAR_EXE%" a -rr -ag-MM-DD-YYYY %BACKUP_FOLDER%\wgserv.rar %WGSERV_FOLDER%
:: move excluded files back into WGSERV folder
for %%X in (%EXCLUDE_FILES%) do move %BACKUP_FOLDER%\%%X %WGSERV_FOLDER%
:: cleanup old local files
forfiles -p %BACKUP_FOLDER% -m *.* -d -%LOCAL_KEEP_DAYS% -c "cmd /c del /q @path"
:: upload backup to b2
"%RESTIC_EXE%" unlock
"%RESTIC_EXE%" backup %BACKUP_FOLDER%\wgserv-%PRETTY_DATE%.rar
"%RESTIC_EXE%" forget --keep-daily %RESTIC_KEEP_DAYS% --keep-weekly %RESTIC_KEEP_WEEKS% --keep-monthly %RESTIC_KEEP_MONTH%
"%RESTIC_EXE%" prune
:: send discord notification
%CURL_EXE% -H "Content-Type: application/json" -d "{\"username\": \"Orfeo\", \"content\":\"BBS backup complete. Starting BBS.\"}" %WEBHOOK_URL%
If you wish to do editing of your MUD it is highly recommended that you apply the following patches. Use Hex Workshop or equivalent in order to make the following changes.
Offset | Change From | Change To | Notes |
---|---|---|---|
000019F3 | CO 5D | F4 BF | Increased Monster Records? #1 |
0001475B | E8 C67A 0500 | 90 9090 9090 | Increased Class Records |
00014777 | E8 907A 0500 | 90 9090 9090 | Increased Map Records |
00014814 | 66C7 8473 3A07 0000 0000 | 9090 9090 9090 9090 9090 | Increased Abilities/Spells #1 |
000148BE | 66C7 8473 3A07 0000 0000 | 9090 9090 9090 9090 9090 | Increased Abilities/Spells #2 |
000149B0 | 66C7 8473 3A07 0000 0000 | 9090 9090 9090 9090 9090 | Increased Abilities/Spells #3 |
0001561E | E800 EDFF FF | 9090 9090 90 | Fix for Increased Records |
00015794 | 74 | EB | Increased Race Records |
00018290 | 0F85 FC02 | E9FD 0200 | MajorMUD Addon Crack #1 |
0002F57E | C800 | FF7F | Increased Shop Records #1 |
000392D8 | 41 | 4F | "(Two handed)" changes to "(Weapon Hand)" |
0004E789 | 53 | 50 | MajorMUD 256-User Crack #1 |
0004E79C | 0400 | 0001 | MajorMUD 256-User Crack #2 |
0004E9B4 | 75 | EB | MajorMUD Addon Crack #2 |
0004E9BA | FF75 08 | 9090 50 | MajorMUD Addon Crack #3 |
0005AE3D | E8 0300 | EC FF09 | Increased Shop Records #2 |
0005AEBD | E8 0300 | EC FF09 | Increased Shop Records #3 |
0005AED5 | E8 0300 | EC FF09 | Increased Shop Records #4 |
0005B01D | D0 07 | FF 7F | Increased Shop Records #5 (Restocking) |
0005F879 | D0 07 | FF 0F | Increased Monster Records #2 |
000649EA | E856 FAFC FF | 9090 9090 90 | SYS LIST NEWLIMITED call |
0006D639 | 66 C784 433A 0700 0000 00 | 90 9090 9090 9090 9090 90 | Smash, PerStealth, and Meditate Fixes #1 |
0006D6E3 | 66 C784 433A 0700 0000 00 | 90 9090 9090 9090 9090 90 | Smash, PerStealth, and Meditate Fixes #2 |
0006D7D5 | 66 C784 433A 0700 0000 00 | 90 9090 9090 9090 9090 90 | Smash, PerStealth, and Meditate Fixes #3 |
0007C02F | 64 6973 636F 6E6E 6563 7465 6421 2121 0D | 68 756E 6720 7570 2121 210D 0000 0000 00 | "just disconnected!!!" changes to "just hung up!!!" |
0008FD9F | 45 4449 5445 44 | 53 5953 4F50 00 | Changes EDITED to SYSOP |
0008BCC5 | 6C 616E 6365 | 77 6172 657A | Changes SYS LANCE to SYS WAREZ}} |
Various MajorMUD bugs and possible fixes.
Elf bards, with their charm maxed, blessing with beauty, can buy/sell song of battle at Orfeo for a profit. They buy low, sell high because Orfeo's is a 0% markup shop. If an elf bard player makes a macro s/he can buy/sell the song of battle fast enough to make about 8 runic per hour, perhaps more."
(Not fixed in 1.11p or 1.00x) "lyrist's companion; casts spell 1055/ "BCNS" (bard cloak no spell)
cast message "3499" (blank) - re-insert the cast message, like the rest of the cloaks have. (2520)
desc message "3498" (blank) - re-insert the desc message, like the rest of the cloaks have. (2531 works nicely.) At this point both are currently left blank. MajorMUD doesn't like being told to execute a command with no commands in it; that's what causes the "The room casts XX!" issue with room spells. Many of the game's room spells are left open ended and are written is a sloppy manner. The messages are inserted backwards and the game is looking for "Textblock 0" when it should be looking for "Textblock XX"; the appropriate text block is set up as a duration, level cap or some other protocol for the spell. poor coding."
This bug will crash your board if left unfixed. Follow the instructions listed, using NMR, and it will actually function like it should. Most Sysops just used FU Globals to block the command "u lyr", this will actually fix it so the cloak can be used. Your bards will love you for it.
This fixed with hexedits above
The only way I know to fix this is by using FU Globals, as described above in the FU Globals setup You block the share command to fix it. Here's a little more information on how it's done, and what exactly it let's you do:
"For the most part, it is more hassle than it is worth to carry around so much coin all the time and even more of a hassle to have to reload it, not to mention, running a stash long enough to pile up that much money in one room. I wouldn't have been able to accumulate a stash that big if I hadn't been scripting on the galleon where others had scripted before me, for over a year, and where several rooms had more than 7 million silver in them. For an elf bard, the number of coins needed to roll enc twice was somewhere between 8 million and 9 million...for the general smasher, it would take even about 1 million coins per 1000 enc to roll enc once. This would be a lower amount for most casters but still would take a lot of time to collect/make and load. Since this is strictly a sharing feature, it ties up a lot of time on 2 characters."
"The green house rubbish room, Khaz disposal chamber bug is a bit trickier but can have nasty consequences. If a player in the green house rubbish room pulls the lever at the same time another player pulls the lever in the Khaz disposal chamber it cause random disconnects of players in the realm. This can play havoc if it occurs during a boss kill, if players are disconnected while in big regen rooms, etc."
I tried looking at the levers in NMR, and everything looks good. I guess this must be some coding error somewhere. The fair way to neuter this would be to block access to the Khaz Disposal chamber, via the map function in NMR. I haven't actually played MMUD in many years, so I'm not sure if the Khaz chamber is the only place to dispose of certain objects? You could block the green house rubbish room, but that makes the green gang house less functional. I don't know if this is still a bug in 1.11p - its pretty hard to time, even if you have two people who know about it.
The codec of twinks is a hidden Sysop option in the WCCMMUD.INI
configuration file. With this option enabled you will have access to an additional array of Sysop commands.
To enable this option edit or create the file WCCMMUD.INI in your main BBS folder (C:\WGSERV). Add the line for the codec of twinks as follows then save and restart your BBS.
CODEC_OF_TWINKS=78
Additional Commands
This is the complete list of additional commands that are added by the codec of twinks.
Summon monsters, items or spells to your current location.
SYS SUMMON <monster number>
SYS SUMMON <item>
SYS SUMMON <spell>
Teleport to any map and room in the game.
SYS E <room#> <map#>
List a users Quest Flags (ie. what they have completed).
SYS GOD <character> ABILITIES
Tweak the statistics of everyone simultaneously, or reset all edits to this.
SYS TWEAK
and SYS EDIT CLEAR
There are also commands that require you to be located in a certain room in order for them to work, these include the invasions and the alignment and high level spell stuff.
From this room you can use the following commands. They do not need to be proceeded by SYS, just issue the commands.
EXPME
: gives experience points
GOODRING
: gives you the good alignment quest ring
NEUTRING
: gives you the neutral alignment quest ring
EVILRING
: gives you the evil alignment quest ring
GOOD[1-5] / NEUT[1-5] / EVIL[1-5]
: gives you complete flags for alignment quests at the level you assign
LEARN SPELL
: gives you the spells: Eye of Magnus, Bigheal, Combat Fury, Death Gaze, Glove of Invulnerability, Judgement of Doom, Negate Magic, Sphere of Isolation (must be a caster class in order to get these)
From the support chamber you can now start monster invasions, which can be summoned at max once per day. Again there is no need to proceed the command with SYS as long as you are in the Support Chamber.
ORC INVASION
RED INVASION
CULT INVASION
GREEN INVASION
DUERGAR INVASION
SARACEN INVASION
# GENERAL
BLANK_LASTNAME_ALLOWED=1
CODEC_OF_TWINKS=78
EXP_IN_TOPGANG=1
MAXIMUM_BANK_BALANCE=0
UPDATE_SPEED=0
# LOGGING
LOGFILE=WCCMMUD.LOG
LOG_SYSOP_COMMANDS=1
TRACK_LIMITED=1
SYS_LOG_DEATHS=1
# SYSOP COMMANDS
SYS_DISABLE_GANGS=MMUDNOGANG
SYS_ADDLIFE_KEY=MMUDGOD
SYS_ALIGNMENT_KEY=MMUDGOD
SYS_DISBAND_KEY=MMUDGOD
SYS_EDITEVIL_KEY=MMUDGOD
SYS_RESET_ROOMS=MMUDGOD
SYS_RETRAIN_KEY=MMUDGOD
SYS_SPEAK_KEY=MMUDGOD
SYS_TOPTEN_KEY=MMUDGOD
SYS_BUFFERS_KEY=MMUDOP
SYS_CHANGE_KEY=MMUDOP
SYS_CLEARSUICIDE_KEY=MMUDOP
SYS_JAIL_KEY=MMUDOP
SYS_LIGHTNING_KEY=MMUDOP
SYS_LISTLIMIT_KEY=MMUDELITE
SYS_LISTUSER_KEY=MMUDELITE
SYS_REPORT_KEY=MMUDELITE
SYS_STATUS_KEY=MMUDELITE
SYS_USERINFO_KEY=MMUDOP
SYS_GOTO_KEY=MMUD
SYS_MAP_KEY=MMUD
If you do not understand the difference between these two options and you just know that you want a complete 'MajorMUD reset' then take a full backup of your system and do Option #2 (Full Reset).
If you wish to reset all of the users on your board while maintaining the current map environment, you must follow these steps.
Copy WCCUSERS.VIR
to WCCUSERS.DAT
Copy WCCGANGS.VIR
to WCCGANGS.DAT
Copy WCCBANKS.VIR
to WCCBANKS.DAT
Refer to appendix A.1 in this document and follow those instructions now if applicable to you (i.e. if you own MajorMUD Plus).
Run the BBS and IMMEDIATELY choose C for Clear all saved evil points on the sysop menu.
C
, choose CP
to clear all the saved profile information.If you wish to completely reset and start from scratch, follow these steps:
WCCADDON.SYS
file if you own any MajorMUD addonsWCCMMUD.INI
file, take a backup of this file nowDEL WCC*.*
)Note: If you are running any other WCC Products (currently only WCC Line Control is available) please contact Metropolis for information on which files to NOT delete.
Note: If you received a new
WCCDMA.SYS
file (for running on a DMA server) after the latest version was released, make sure you save this file to restore it after re-installing.
WCCADDON.SYS
file, copy it into your BBS directory now.WCCMMUD.INI
file, copy it into your BBS directory now.Note: This must be done prior to anyone creating new characters.
Note: This must also be done prior to anyone creating new characters.
If you own MajorMUD Plus - Entertainment Edition and you are resetting your MajorMUD game then you most likely want to reset the MajorMUD plus registries and descriptions.
Do this with the clear plus data option in the MajorMUD offline utilities (refer to the MajorMUD Plus release notes - WCCMMPLS.REL
- for more information)
This method converts your currently installed MUD to new call letters (i.e. WCC to WBB) and then allows you to install a second MUD using the standard SETUP.EXE.
If you don't have a currently installed MUD, install it normally and test it out and then come back to this.
Note: Backup your whole
C:\WGSERV
directory somewhere just in case something goes wrong.
This process needs to be done for the entire list of files to the right one at a time.
WCC
and replace with WBB
(replace All when it asks)wcc
and replace with wbb
(replace All when it asks)WBBMMUD.DMD
with Notepad.WBBMMPLS.DMD
.MDF
files as opposed to .DMD
.WGSRUNMT.EXE
), since it will have the wrong module name now.WCCGAMEOP
to WBBGAMEOP
. Though, you probably want it this way, and then just add the new keys to whichever classes.WCC
files to WBB
files. this is under tools --> rooms --> change dat call letters (NMR v1.4 required)You can install another instance of MajorMUD by using the setup like it was a fresh install on a BBS without MajorMUD.
You may also want to change the name that appears next to things in the Audit Trail.
wbbmmud.dll
and wbbmmpls.dll
in a Hex Editordownload and install winrar to get rar.exe - copy it to your WG folder...
Go to your WG folder and create the following:
WGSCLEAN.BAT file
(this bat files runs at cleanup)mudbackup
Create a basic backup script WGSCLEAN.bat
:
You can use the more complete script above.
@echo off
rar a -rr -ag-MMM-DD-YY mudbackup\wccbackup.rar wcc*.*
This creates a file that looks like "wccbackup-Feb-22-03.rar"
just remember to delete them every once in a while...
if you had a second realm going, then just add another line:
rar a -rr -ag-MMM-DD-YY mudbackup\wbbbackup.rar wbb*.*
wccupda2.dat
- important file
When the bbs first starts up, majormud runs through every record that is in the update file and writes the information that's in it to the actual dat files. the update file is important in a normal non-edited mud because it is what restocks shops, helps monster regen, and I'm sure a number of other things.
It doesn't update every single field of every record of every database however, just the things that don't have any user interaction. what i mean by this is things like the number of items in a shop, the number of monsters in a room, how many times a monster has dropped an item, etc are not overwritten during this process. when you install mud as an upgrade of a previously installed mud, it doesn't overwrite your .dat files. it only overwrites the mud program files, wccupda2.dat
, and the *.vir files (the .vir files are the base dat files that have never been touched by playing users). if it overwrote your dat files, then all interaction your users had with the game would be lost (not the actually character data, just things like what I've already mentioned). this is why editing environment #1 (below) is the best scenario, read more on that.
The update file has NOT completely ran through when the audit trail says "majormud initialized." you MUST wait for it to say "Automatic Database Update Complete" to know it's finished. If you edit your realm for say 2x monster exp and load up the bbs and wonder why they are still 1x, it is probably because your update file hasn't completely been run through and/or the monsters that were in the realm before you applied the exp changes weren't taken out during the offiline recovery. This would apply for items, spells, and anything else.
About monsters and the active monster file: the way it works is mud pulls a monster from the wccknms2.dat
(the one you edit) and writes them to the wccacms2.dat
(active monsters). So if it pulls a monster and puts it into the realm before any editing changes have occured, It will still have the old data.
After the update file finished its run and you see that "Automatic Database Update Complete" message, it is safe to delete it. If you wish to put an updated (edited) one in it's place. You can then wait for the next shutdown and startup for your edits to be applied or you can go to the sysop menu and "Apply an Update." to tell the update file to run through again.
Note: The databases that are compiled into the wccupda2.dat file are: races, classes, monsters, items, spells, rooms, shops, actions, textblocks, and messages.
There are three general scenarios you can use to go about with your editing. These are listed in order of recommendation.
Copy your w*.dat files to a seperate directory and set nightmare up to edit those. When you are done making edits, compile an update file and copy it to your bbs directory. you'll need to make sure your bbs has finished it's update process (see above) before you can overwrite that file. if you want your dat files to be updated you can either; a) wait for the next shutdown and startup for it to automatically run through, b) go to the sysop menu and "apply an update", or c) restart the BBS manually.
Do your edits offline with nightmare setup to edit that dats in your WG folder. This way you don't have to worry about the update file not doing it's job or deal with waiting for edits to be applied. Be sure to compile an update before you load your BBS though. If you don't, all of the edits you did will be overwritten as the update file runs though.
Edit the dats in your WG folder while the BBS is running. I have only heard of one user to have success with this and I personally think it can cause a lot of corruption. if mud and you go to write to a record at the same time, OR if mud went to write a value and then you wrote over it before it went to read it again, OR if mud went to read one of the quickreferences it creates for monsters/items/spells/etc and then all of a sudden it isn't there anymore or different than how it initially read it, OR any number of other things I could sit here and write about could cause corruption and/or crashes. use this method cautiously and you'll need to wait until the update file has finished it's course before doing any edits.
DO NOT edit a user while the user is in the game. if you are using method #1 and wish to edit a user, just point NMR to your WG directory temporarily and do whatever edits you want and switch it back.
Any time you manually take the board down to do some edits or whatever you should always run an offline recovery
wccmmutl.exe
before starting the BBS back up.
Status 1 - Invalid Operation
Status 2 - Disk I/O Error
Status 3 - File Not Open
Status 4 - Key Value Not Found, on an UPDATE, this means the file is damaged
Status 5 - Duplicate Key Value
Status 6 - Invalid Key Number
Status 7 - Different Key Number
Status 8 - Invalid Positioning
Status 9 - End-Of-File
Status 10 - Modifiable Index Value Error
Status 11 - Invalid Location
Status 12 - File Not Found
Status 13 - Extended File Error
Status 14 - Pre-Image Open Error
Status 15 - Pre-Image I/O Error
Status 17 - Close Error
Status 18 - Disk Full
Status 19 - Unrecoverable Error
Status 20 - Record Manager Inactive
Status 21 - Index Buffer Too Short
Status 22 - Data Buffer Length
Status 23 - Position Block Length
Status 24 - Page Size Error
Status 25 - Create I/O Error
Status 26 - Number of Keys
Status 27 - Invalid Key Position
Status 28 - Invalid Record Length
Status 29 - Invalid Key Length
Status 30 - Not A Btrieve File
Status 35 - Directory Error
Status 36 - Transaction Error
Status 37 - Transaction Is Active
Status 38 - Transaction Control File I/O Error
Status 39 - End/Abort Transaction Error
Status 40 - Transaction Max Files
Status 41 - Operation Not Allowed
Status 43 - Invalid Record Access
Status 44 - Null Index Path
Status 46 - Access To File Denied
Status 51 - Invalid Owner
Status 52 - Error Writing Cache
Status 54 - Variable Page Error During a Step Direct operation
Status 55 - Autoincrement Error
Status 58 - Compression Buffer Too Short
Status 66 - Maximum Number of Open Databases Exceeded
Status 67 - Rl Could Not Open SQL Data Dictionaries
Status 68 - Rl Cascades Too Deeply
Status 69 - Rl Cascade Error
Status 71 - Rl Definitions Violation
Status 72 - Rl Referenced File Could Not Be Opnend
Status 73 - Rl Definition Out Of Sync
Status 76 - Rl Referenced File Conflict
Status 77 - Wait Error
Status 78 - Deadlock Detected
Status 79 - Programming Error
Status 80 - Conflict
Status 81 - Lock Error
Status 82 - Lost Position
Status 83 - Read Outside Transaction
Status 84 - Record In Use
Status 85 - File In Use
Status 86 - File Table Full
Status 87 - Handle Table Full
Status 88 - Incompatible Mode Error
Status 90 - Redirected Device Table Full
Status 91 - Server Error
Status 92 - Transaction Table Full
Status 93 - Incompatible Lock Type
Status 94 - Permission Error
Status 95 - Session No Longer Valid
Status 96 - Communications Environment Error
Status 97 - Data Message Too Small
Status 98 - Internal Transaction Error
Status 100 - No Cache Buffers Available
Status 101 - No OS Memory Availabl
Status 102 - Not Enough Stack space
Status 1001 - Lock Option Out Of Range
Status 1002 - Memory Allocation Error
Status 1003 - Memory Option Too Small
Status 1004 - Page Size Option Out Of Range
Status 1005 - Invalid Pre-Image Drive Option
Status 1007 - Files Option Out of Range
Status 1008 - Invalid Initialization Option
Status 1009 - Invalid Transaction File Open
Status 1011 - Compression Buffer Out Of Range
Status 1013 - Task Table Full
Status 1014 - Stop Warning
Status 1015 - Invalid Pointer
Status 1016 - Already Initialized
Status 2001 - Insufficient Memory
Status 2003 - No Local Access Allowed
Status 2006 - No Available SPX Connection
Status 2007 - Invalid Parameter
Syntax53 - https://mudinfo.net
Kyau - https://kyau.net/wiki/Category:MajorMUD