Morrowind

A Guide to TES3MP

TES3MP is a fully playable multiplayer version of Morrowind, based on OpenMW.

Introduction

This project is already fairly well-documented, but this guide serves as a quick-reference for new players. It aims to describe the current state of the project, and offer some advice on overcoming common problems.

Mechanics

To make the game work in a multiplayer context, a few special mechanics have been introduced:

  • Upon joining the server, players must log in; all player data is stored on the server.
  • Time no longer passes when a player sleeps or fast-travels. This ensure that game time is always synchronized between players.
  • The game no longer pauses in the menus.
  • By default, all players share the same journal, which means that if any player talks to an NPC or picks up a quest item, the journal will be updated for all players.
  • If a player dies, they will respawn at the nearest Imperial Shrine or Tribunal Temple, and they will lose some skill points, much like after spending time in jail.
  • A new chat console has been added. This can be toggled by pressing F2, and chat commands can be entered by pressing Y.

Limitations

Limited Synchronization

Some data is not currently synchronized between players and the server, which can lead to inconsistencies between clients, and some data being reset after logging out and rejoining. In particular, NPC dispositions are not saved to the server.

Outdated Engine

Since OpenMW is constantly evolving, sometimes TES3MP may fall behind, in which case the latest features of the engine may not be available.

No Battle Music

The battle music does not play, although some workarounds exist.

Quest-Related Quirks

Since the original game was designed with only one player in mind, some quests may not work properly when multiple players are present. Fortunately, these cases are few and far between, and console commands can normally be used as a workaround.

Some specific examples are documented below.

Permanent Corprus

Only the player who gives Divayth Fyr the Dwemer Boots will be cured of Corprus.

Other players can cure themselves using the following console commands:

Player->AddSpell "common disease immunity"
Player->AddSpell "blight disease immunity"
Player->AddSpell "corprus immunity"
Player->RemoveSpell "corprus"

Disappearing Mehra Milo

Mehra Milo, when situated in the Ministry of Truth and Holamayan, may only be visible to the player who previously talked to her!

The easiest workaround is to have the same player talk to her again.

Holamayan Monastery Door

The door to this monastery only opens at a particular time of day, but there is no way to pass time except by literally waiting (in real life).

Fortunately, the game time can be changed using the console. This should be done by all players, to keep the time of day in-sync:

Set GameHour To 6

Setup

There is already a quickstart guide available here, but I will describe how to get games working without using the server browser. This can be useful to connect directly to friends over a LAN or online.

TES3MP uses the same configuration files as OpenMW, but there are some additional files in the TES3MP directory that can be used to configure the multiplayer settings. In particular, the files we care about are tes3mp-client-default.cfg and tes3mp-server-default.cfg, which control the client and server, respectively.

Client Configuration

The destination address of the client configuration determines where the game will try to connect; this should be the IP address of the host.

The port should also match the server port of the host, and the server password should be provided (if set).

Example:

destinationAddress = 192.168.0.45
port = 25565
password = balmora

Running tes3mp.exe will then attempt to connect directly to the configured server.

Server Configuration

The main settings that we need to concern ourselves with in the server configuration file are the password and port:

  • A password can be set to prevent strangers joining a game (if playing online).
  • The port must match the port used by the clients.

Startup Command

As of TES3MP 0.8.0, a one-time command (/runstartup) needs to be run after starting a new server. This runs the game's usual start-up script to ensure that objects and NPCs are in the correct state. If this step is omitted, some NPCs may be visible before they would normally appear.

This command is advertised in the chat console, but note that the command requires admin privileges. Granting admin privileges is explained in the server guide, but it can only be done after character creation.

Console Commands

As well as the usual Morrowind console, TES3MP supports a number of new commands which can be entered via the chat window. The full list of commands can be found in this server guide, under the header "Server commands".

Animation command

Animations can be played at will.

Modding

Client Mods

In TES3MP, regular Morrowind mods are known as client mods. The server specifies exactly which client mods are required, and their load order, and only clients with those same mods installed are allowed to join. Pluginless replacers such as new graphics and sounds are the exception to this rule since they do not affect gameplay.

Clients can configure their loaded mods through the launcher, just as they would when playing OpenMW.

Server Setup

The steps to set up a server's mod list are detailed in the FAQ, under the header "How do I set up the client mods for my server?".

Tes3MpPluginHelper is an invaluable tool here: it will automatically copy your active mod selection from OpenMW to the format required by TES3MP.

Tes3MpPluginHelper GUI

For example, here is a mod selection from openmw.cfg:

content=Morrowind.esm
content=Tribunal.esm
content=Bloodmoon.esm
content=Patch for Purists.esm
content=GITD_WL_RR_Interiors.esp
content=Expansion Delay.ESP
content=Patch for Purists - Book Typos.ESP
content=Patch for Purists - Semi-Purist Fixes.ESP
content=Unofficial Morrowind Official Plugins Patched.ESP
content=Merged Objects.esp
content=multipatch.esp

And here is the resulting requiredDataFiles.json after running Tes3MpPluginHelper:

[
    {"Morrowind.esm": ["0x7B6AF5B9", "0x34282D67"]},
    {"Tribunal.esm": ["0xF481F334", "0x211329EF"]},
    {"Bloodmoon.esm": ["0x43DD2132", "0x9EB62F26"]},
    {"Patch for Purists.esm": ["0xE5A0F103"]},
    {"GITD_WL_RR_Interiors.esp": ["0xC783DECC"]},
    {"Expansion Delay.ESP": ["0x9D79CD4B"]},
    {"Patch for Purists - Book Typos.ESP": ["0x2E10D796"]},
    {"Patch for Purists - Semi-Purist Fixes.ESP": ["0x7AC1FB23"]},
    {"Unofficial Morrowind Official Plugins Patched.ESP": ["0xA4EEA087"]},
    {"Merged Objects.esp": ["0x8EA6BD47"]},
    {"multipatch.esp": ["0xB86C0E9E"]}
]

Bypassing Mod Conflicts

If the plugin versions do not match the server specifications exactly, players will not be allowed to join. If this causes problems, the checksums can be removed from any of these files, and the server will only compare the filenames.

Example:

[
    {"Morrowind.esm": []},
    {"Tribunal.esm": []},
    {"Bloodmoon.esm": []},
    ...
]

Copying Mods Between Clients

These are the steps required to copy all mods from one client (source) to another (target):

  1. Copy all mod folders from source machine to target machine.
  2. Copy all data="..." and content="..." lines from source openmw.cfg to target openmw.cfg.

  3. Update any paths in target openmw.cfg if any mods are in a different drive or directory on the target machine.
  4. (Optional) If the target wants to use ModOrganiser, you can copy the ModOrganiser profile as well.

Server Mods

TES3MP allows the creation and use of server-side mods using Lua scripts.

A list of available server mods can be found here.

Published 2020/09/20

Last updated 2022/04/18