summaryrefslogtreecommitdiff
path: root/README.md
blob: 05887055e1c531f7a66b5476271ca6d3159798cf (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# The Mana World Classic Official Mods

In this repository, you can find all our upstream mods.

## Making a new mod

1. Make a subfolder with the name of your mod. It should be ASCII and short.
For example, if your mod is "Brilliant City", try calling it "brilliant_city"
2. The folder root level is the equivalent to client-data root. So if you want to
replace graphics/sprites/npcs/lamppost.png, you will add your new version to:
`brilliant_city/graphics/sprites/npcs/lamppost.png`
3. The exception is for monsters: It is safer to add them to
`brilliant_city/mods/monsters.xml` or editing monsters.xml in mods folder directly.
This file support includes.
4. Make a PR to the official clientdata repository, changing mods.xml to add the
following content:
`<mod name="Brilliant City" description="Replace lamppost" help="COPYING" localdir="mods/brilliant_city/" />`

A developer will further instruct you on how to e.g. optimize monster database for
redistribution. In theory, your mod should be able to run regardless of upstream
changes, but keep an eye out and maintain it just in case. Outdated mods may be
removed.

## Upgrading a local override to a mod

Follow the same procedures above, moving all the contents of local/ to your
subfolder. Make the PR to the official client repository from #4 and you're
good to go.

## Upgrading a local override for non-conflicts only

If you want to retain your changes as a local override, but want to take the
advantage of the mod system so they don't enter in conflict with upstream changes,
it is also easy! This is specially important depending on what your mod does.
Keep in mind that there's no way to support map changes easily, in either way.

First of all, create `mods` folder inside the local overrides folder.

If you plan in having multiple local overrides, create subfolders for them.

Transfer all your changes to monsters.xml to mods/monsters.xml
Transfer all your changes to items.xml to mods/items.xml

* You can also uncomment the `<include>` statement in mods/monsters.xml if you
never changed monsters.xml but has changes in a monsters/ folder in client-data.
If you don't know what this is about, then you're not using an outdated local folder
and can skip this bullet point.

You can now follow the above procedures, but changing mods.xml in local/ folder,
and this will spare you from merge conflicts. If you're using monsters/ folder,
though, which is now deprecated, you can skip this part - just uncommenting the line
should have done the magic for you.

However, if you move `monsters/` folder to `mods/your_name`, and update
mods/monsters.xml to point to your folder instead, you can submit it as a MR to the
mods repository (along the changes from #4) and TMWT may, in the future, distribute
your mod for anyone interested!

## Disabling a mod temporarily

In settings, the last tab should be "Mods". You can disable their checkbox, and
the next time you login, they'll not be loaded.