• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

OpenTibia OT Monster Converter

soul4soul

Intermediate OT User
Joined
Aug 13, 2007
Messages
1,875
Solutions
3
Reaction score
128
Location
USA
OT Monster Converter
OT Monster Converter is a tool for converting monster files between the various formats used by open tibia servers. Any supported input format can be converted to any supported output format. The program is flexible enough to allow the same input and output format which is helpful for keeping monster files standardized during server development. It's likely a large number of users will use this program to convert from TFS XML format to TFS RevScriptSys format. At this time, I strongly suggest the original TFS XML files be saved if you do the conversion in case there are more changes in the TFS RevScriptSys format.

The TibiaWiki format works by scaping the TibiaWiki website which takes about 20 minutes. To save users time and TibiaWiki bandwidth I will be maintaining a public github repository where I will periodically generate and commit TFS XML and TFS RevScriptSys monsters. The repository can be found at GitHub - soul4soul/converted-tibiawiki-monster-data (https://github.com/soul4soul/converted-tibiawiki-monster-data). Due to the great work by the TibiaWiki admins and community and the new AbilityTemplates, the conversion from TibiaWiki works very well check out the converted Dragon. One of the best ways to further OT monster development is to help TibiaWiki update all monsters to use AbilityTemplates. Please don't abuse the TibiaWiki converter, information on TibiaWiki is not updated that often. Running the converter once a week is sufficient.

The converter reports warnings and errors for the parsing of the input format and conversion to output format. The detailed error reporting should help to identify short coming of the program that require manual user intervention. An example of a warning is include in the GUI pictured below.

Supported Formats
FormatSupports InputSupports Output
TFS XMLYesYes
PyOTNoYes
TFS RevScriptSysNoYes
TibiaWikiYesYes
Cip MonYesNo
Note: otserverbr revscriptsys format has minor incompatibilities and is not supported at this time.

GUI
Sample image of the graphical user interface. The GUI is only available on windows.
1628457490293.png

CLI

Bash:
PS C:\Users\...\Release> .\otmc.exe
OT Monster Converter:
Developed By Soul4Soul
Repository located at [URL="https://github.com/soul4soul/ot-monster-converter"]GitHub - soul4soul/ot-monster-converter: C# .NET 5 program for converting OpenTibia (OT) monsters between commonly used formats (https://github.com/soul4soul/ot-monster-converter)[/URL]

Usage: otmc [OPTIONS]+

Options:
  -i, --inputDirectory=VALUE The directory of monster files to parse.
  -o, --outputDirectory=VALUE
                             The output directory of the new monster files.
      --inputFormat=VALUE    The starting input monster file format.
      --outputFormat=VALUE   The desired monster file format.
      --otbPath=VALUE        The path to an otb file.
      --itemIdFormat=VALUE   Desired item id types used for the converted
                               monser loot.
  -m, --MirrorFolders        Mirror the folder structure of the input directory,
                                otherwise flat folder structure is output
  -h, --help                 show this message and exit

Input Formats: TibiaWiki, TFS XML, Cip Mon
Output Formats: TFS RevScriptSys, TibiaWiki, TFS XML, pyOT
Item Id Formats: KeepSourceIds, UseServerIds, UseClientIds

Source Code and Downloads
The program is so large because it's compiled with the .NET5 runtime embedded in the executable to make running it more convenient.
Precompiled binaries for Windows x64 platform are attached and can be downloaded from the github release here.
Source code is available on github at https://github.com/soul4soul/ot-monster-converter
 

Attachments

  • ot-monster-converter-5.0.0.zip
    183.2 KB · Views: 33 · VirusTotal
  • ot-monster-converter.zip
    80.6 MB · Views: 42 · VirusTotal
Last edited by a moderator:
Great tool, working perfectly. But I have a question, are the attacks avaible when getting the files? I'm trying to get True Asuras from TibiaWiki input and TFS RevScriptSys / TFS XML output, but the attacks only show:

revscript
Lua:
monster.attacks = {
    {name ="melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -700}
}

and xml
XML:
 <attacks>
        <attack name="melee" interval="2000" chance="100" min="0" max="-700" />
    </attacks>

If I choose another input would work? Or attack code is not avaible for this monsters?.
Regards!
 
Great tool, working perfectly. But I have a question, are the attacks avaible when getting the files? I'm trying to get True Asuras from TibiaWiki input and TFS RevScriptSys / TFS XML output, but the attacks only show:

revscript
Lua:
monster.attacks = {
    {name ="melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -700}
}

and xml
XML:
 <attacks>
        <attack name="melee" interval="2000" chance="100" min="0" max="-700" />
    </attacks>

If I choose another input would work? Or attack code is not avaible for this monsters?.
Regards!

I don't think the tool is able to generate monster attacks since nobody have these information other than cipsoft... every attack information we have is hand made with guessed values... all we know is attack effect and average damage... chance, interval, etc are unknown values
 
Last edited by a moderator:
I don't think the tool is able to generate monster attacks since nobody have these information other than cipsoft... every attack information we have is hand made with guessed values... all we know is attack effect and average damage... chance, interval, etc are unknown values
The effect, chance and duration are in the .mon files and there isn't interval intrinsically.
 
The effect, chance and duration are in the .mon files and there isn't interval intrinsically.
yeah, I wrote that not with the 7.x leaked files in mind because it is pretty obvious that for these files and that specific version we do have information, but what about the nowadays information? 🤔
 
Great tool, working perfectly. But I have a question, are the attacks avaible when getting the files? I'm trying to get True Asuras from TibiaWiki input and TFS RevScriptSys / TFS XML output, but the attacks only show:

revscript
Lua:
monster.attacks = {
    {name ="melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -700}
}

and xml
XML:
 <attacks>
        <attack name="melee" interval="2000" chance="100" min="0" max="-700" />
    </attacks>

If I choose another input would work? Or attack code is not avaible for this monsters?.
Regards!

The information from TibiaWiki is only as good as what the community provides. Right now abilities aren't generated unless all of the information needed is available.


TibiaWiki DragonTibiaWiki True Dawnfire Asura

Notice the spell contain scene information which has the key details about the ability
1628551666601.png
Scene information is missing from the attacks, I could still add them to the output but the only information available is the damage amount and damage element
1628551702130.png
 
So this can read the CIPSoft .mon files, but not convert them?

@EvulMastah wrote a basic converter in PHP ;)
 
So this can read the CIPSoft .mon files, but not convert them?
The tool CAN convert cipsoft mon files but the loot will be client ids. Eventually I will add a feature to enable converting between client id and server id.
 
this is able to convert cip leaked monsters to lua?
edit : forget about it, i'm rushing
 
Last edited:
The tool CAN convert cipsoft mon files but the loot will be client ids. Eventually I will add a feature to enable converting between client id and server id.
This won't always work, as multiple server id's can map to the same client id.

Converting server id's to client id's is pretty straight forward and a 1-way street where you can't go wrong, but client id's to server id's can end up with multiple results, and you then have to pick.
 
This won't always work, as multiple server id's can map to the same client id.

Converting server id's to client id's is pretty straight forward and a 1-way street where you can't go wrong, but client id's to server id's can end up with multiple results, and you then have to pick.
To I learned. As long as it's not every id the feature is still viable, errors will be reported for ids that have multiple mappings.
 
@soul4soul There's a little detail on monster loot outcome in TFS XML output. The program set item id="nameoftheitem" and should be item name="nameoftheitem". Just wanted to notify this (is not hard to do the replacement with text editor), thanks for the share because it works very good! :)
 
Back
Top