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:

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, spell effects, diseases, NPC dispositions and merchant inventories are not saved to the server.

Outdated Engine

At the time of writing, TES3MP is based on OpenMW 0.44.0, which means it lacks some of the latest features that OpenMW supports, such as native herbalism, animated containers, day/night-based models, weapon sheathing, truetype fonts and HD UI elements.

In practice this means that mods that rely on these features will, at best: not work at all, and at worst: result in missing models in-game.

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.

Example:

destinationAddress = 192.168.0.45 port = 25565

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:

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.

Note that some commands require elevated privileges. The server guide explains this as well, under the header "How to make yourself an admin".

Modding

Installing Client Mods

Since TES3MP shares the same settings as OpenMW, it also shares the same installed mods.

Pluginless replacers such as new graphics and sounds will work out of the box since they do not affect gameplay, but the server requires that all players have the same plugins installed, to reduce the risk of any synchronization errors.

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 20/09/2020