• 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,840
Solutions
3
Reaction score
102
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-4.0.0.zip
    175 KB · Views: 1 · VirusTotal
  • ot-monster-converter.zip
    75 MB · Views: 2 · VirusTotal
Last edited by a moderator:

ralke

(҂ ͠❛ ෴ ͡❛)ᕤ
Joined
Dec 17, 2011
Messages
964
Solutions
23
Reaction score
494
Location
Santiago - Chile
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!
 

Evil Puncker

I know nothing
TFS Developer
Joined
May 30, 2009
Messages
8,103
Solutions
218
Reaction score
4,018
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:

Terotrificy

Well-Known Member
Joined
Oct 18, 2020
Messages
251
Solutions
9
Reaction score
89
Location
Santiago, Chile.
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.
 

Evil Puncker

I know nothing
TFS Developer
Joined
May 30, 2009
Messages
8,103
Solutions
218
Reaction score
4,018
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? 🤔
 
OP
OP
soul4soul

soul4soul

Intermediate OT User
Joined
Aug 13, 2007
Messages
1,840
Solutions
3
Reaction score
102
Location
USA
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
 

Nottinghster

Tibia World RPG Developer
Joined
Oct 24, 2007
Messages
1,522
Solutions
4
Reaction score
374
Location
Brazil - Rio de Janeiro
GitHub
Nottinghster
So this can read the CIPSoft .mon files, but not convert them?

@EvulMastah wrote a basic converter in PHP ;)
 
OP
OP
soul4soul

soul4soul

Intermediate OT User
Joined
Aug 13, 2007
Messages
1,840
Solutions
3
Reaction score
102
Location
USA
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.
 

johnsamir

Active Member
Joined
Oct 13, 2009
Messages
231
Solutions
1
Reaction score
35
Location
Nowhere
this is able to convert cip leaked monsters to lua?
edit : forget about it, i'm rushing
 
Last edited:

Alpha

Relentless
Joined
Apr 3, 2011
Messages
667
Solutions
36
Reaction score
481
Location
South Korea
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.
 
OP
OP
soul4soul

soul4soul

Intermediate OT User
Joined
Aug 13, 2007
Messages
1,840
Solutions
3
Reaction score
102
Location
USA
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.
 

ralke

(҂ ͠❛ ෴ ͡❛)ᕤ
Joined
Dec 17, 2011
Messages
964
Solutions
23
Reaction score
494
Location
Santiago - Chile
@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! :)
 
Top