• 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 Assets Editor

It does, but is it safe to do this?
gg.PNG
If you're going to modify the current tibia asset sheet you will have to remove it from assets.json file, thanks to @jo3bingham for figuring out this
 
It does, but is it safe to do this?
View attachment 54045
If you're going to modify the current tibia asset sheet you will have to remove it from assets.json file, thanks to @jo3bingham for figuring out this

The reason I am asking is because of this:

The 2 top fishing skills in Tibia used a bug to fish infinitely, by modifying the sprite or dat, to remove the plants on the water. They were then able to use a fishing rod and gain skills on that tile, but without using worms! Because the client thought it was the item id of a "shallow water" tile. Look at the tiles in the video, with plants on top of water.

iwcDGGx.png


I didn't quite understand how to use this tool yet, but can you try make some plant invisible or change its id (that is on water) to try fish on the tile? They did it with some dat/spr editor back then. Still today, they are the top fishing skills. They say in the video they fixed the bug in 2013. But that was in the old client. Maybe it works in new one? then we can gain fishing 130 or more, without using a single worm.

Looking at the old (7.72 - maybe obsolete by now!) code for fishing;
Lua:
BEGIN "Fishing"
MultiUse, IsType (Obj1,3483), IsType (Obj2,4597), !IsProtectionZone (User), IsObjectInInventory (User,3492,0), TestSkill (User,Fishing,80,50) -> Effect(Obj2,2), Create(Obj1,3578,0), Change(Obj2,4609,0), DeleteInInventory(User,3492,0)
MultiUse, IsType (Obj1,3483), IsType (Obj2,4598), !IsProtectionZone (User), IsObjectInInventory (User,3492,0), TestSkill (User,Fishing,80,50) -> Effect(Obj2,2), Create(Obj1,3578,0), Change(Obj2,4610,0), DeleteInInventory(User,3492,0)
MultiUse, IsType (Obj1,3483), IsType (Obj2,4599), !IsProtectionZone (User), IsObjectInInventory (User,3492,0), TestSkill (User,Fishing,80,50) -> Effect(Obj2,2), Create(Obj1,3578,0), Change(Obj2,4611,0), DeleteInInventory(User,3492,0)
MultiUse, IsType (Obj1,3483), IsType (Obj2,4600), !IsProtectionZone (User), IsObjectInInventory (User,3492,0), TestSkill (User,Fishing,80,50) -> Effect(Obj2,2), Create(Obj1,3578,0), Change(Obj2,4612,0), DeleteInInventory(User,3492,0)
MultiUse, IsType (Obj1,3483), IsType (Obj2,4601), !IsProtectionZone (User), IsObjectInInventory (User,3492,0), TestSkill (User,Fishing,80,50) -> Effect(Obj2,2), Create(Obj1,3578,0), Change(Obj2,4613,0), DeleteInInventory(User,3492,0)
MultiUse, IsType (Obj1,3483), IsType (Obj2,4602), !IsProtectionZone (User), IsObjectInInventory (User,3492,0), TestSkill (User,Fishing,80,50) -> Effect(Obj2,2), Create(Obj1,3578,0), Change(Obj2,4614,0), DeleteInInventory(User,3492,0)
MultiUse, IsType (Obj1,3483), IsType (Obj2,4597) -> Effect(Obj2,2)
MultiUse, IsType (Obj1,3483), IsType (Obj2,4598) -> Effect(Obj2,2)
MultiUse, IsType (Obj1,3483), IsType (Obj2,4599) -> Effect(Obj2,2)
MultiUse, IsType (Obj1,3483), IsType (Obj2,4600) -> Effect(Obj2,2)
MultiUse, IsType (Obj1,3483), IsType (Obj2,4601) -> Effect(Obj2,2)
MultiUse, IsType (Obj1,3483), IsType (Obj2,4602) -> Effect(Obj2,2)
MultiUse, IsType (Obj1,3483), IsType (Obj2,4609) -> Effect(Obj2,2)
MultiUse, IsType (Obj1,3483), IsType (Obj2,4610) -> Effect(Obj2,2)
MultiUse, IsType (Obj1,3483), IsType (Obj2,4611) -> Effect(Obj2,2)
MultiUse, IsType (Obj1,3483), IsType (Obj2,4612) -> Effect(Obj2,2)
MultiUse, IsType (Obj1,3483), IsType (Obj2,4613) -> Effect(Obj2,2)
MultiUse, IsType (Obj1,3483), IsType (Obj2,4614) -> Effect(Obj2,2)
MultiUse, IsType (Obj1,3483), IsType (Obj2,4615) -> Effect(Obj2,2)
MultiUse, IsType (Obj1,3483), IsType (Obj2,4616) -> Effect(Obj2,2)
MultiUse, IsType (Obj1,3483), IsType (Obj2,4617) -> Effect(Obj2,2)
MultiUse, IsType (Obj1,3483), IsType (Obj2,4618) -> Effect(Obj2,2)
MultiUse, IsType (Obj1,3483), IsType (Obj2,4619) -> Effect(Obj2,2)
MultiUse, IsType (Obj1,3483), IsType (Obj2,4620) -> Effect(Obj2,2)
MultiUse, IsType (Obj1,3483), IsType (Obj2,622) -> Effect(Obj2,2)
END

It seems that the client thought the Obj2 (the clicked object) was one of those fishing tile IDs. And that was enough to trigger the skill! But it seems it never used the worms or looted a fish! Because I think the line just reads from left->right. So first it checked, if the Obj1 (item being used) is fishing rod. Then check if tile is fishing tile. And then make sure not in PZ. And then make sure we have a worm in bp. And then advance skill. But the effect/create fish/etc... never happened cus the tile was in fact a plant and not water.

I'm still not sure if that was a DAT or SPR edit. To make the client think it is shallow water, it must have been a DAT edit? Or both? I don't know! Would be awesome to see if the bug still works.


So regarding what u said: we must remove this file from the assets.json? But do we need to add the new file in there? Or how does it work?
Would love to see a quick video demonstrating it, if you could!
 
Last edited:
Everytime I attempt to make a new outfit, the program crashes itself. Even on latest version.
I wanted to make a looktype for a custom monster and the settings were just.
1 frame on first group animation (For Idle), 2 frames (For walking)
1layer, 32x 32y 0z for patterns. and I cannot find tutorials on how to make items/outfits with this program.
Just Object builder and mostly 8.x

so please, what the heck can I do to make my small monster (32x32) with 2 frames of walking animation and 1 frame of Idle?
if you can't, then at least upload a Video Tutorial on Youtube. becuz this makes me upset.

PS; Even I Thought the assets would have both DAT and SPR due for misknowledge and remembering the classic object builder. but, IDK how could worked the modified clients with Remere Map Editor if it doesn't have both files (Specially for map editing). Anyway now I realized that I can add sprite sheets to my assets (The ones I added), but I cannot use them on newly added looktypes cuz the program itself crashes when making a new outfit or scrolling to the new outfit object in the list, I don't wanna replace anything just in case I plan to upgrade to 12.60+ and only have to delete the custom mobs XML files and add the sprites/outfits again on next version assets.

I compiled (at least to save the sprite sheet I added), just in case you were thinking I didn't.
 
Last edited:
Everytime I attempt to make a new outfit, the program crashes itself. Even on latest version.
I wanted to make a looktype for a custom monster and the settings were just.
1 frame on first group animation (For Idle), 2 frames (For walking)
1layer, 32x 32y 0z for patterns. and I cannot find tutorials on how to make items/outfits with this program.
Just Object builder and mostly 8.x

so please, what the heck can I do to make my small monster (32x32) with 2 frames of walking animation and 1 frame of Idle?
if you can't, then at least upload a Video Tutorial on Youtube. becuz this makes me upset.

PS; Even I Thought the assets would have both DAT and SPR due for misknowledge and remembering the classic object builder. but, IDK how could worked the modified clients with Remere Map Editor if it doesn't have both files (Specially for map editing). Anyway now I realized that I can add sprite sheets to my assets (The ones I added), but I cannot use them on newly added looktypes cuz the program itself crashes when making a new outfit or scrolling to the new outfit object in the list, I don't wanna replace anything just in case I plan to upgrade to 12.60+ and only have to delete the custom mobs XML files and add the sprites/outfits again on next version assets.

I compiled (at least to save the sprite sheet I added), just in case you were thinking I didn't.
Are you sure you're using the latest release on GitHub? does it crash on outfit only or items too?
"1layer, 32x 32y 0z" don't use 0 make it 1
 
Are you sure you're using the latest release on GitHub? does it crash on outfit only or items too?
"1layer, 32x 32y 0z" don't use 0 make it 1I
Ok. solved it. I had created the new Looktype. (Since I Use 12.51 assets, the newly added outfit/Looktype is numbered 1340)
so I mustn't use 0 as value. thanks for the tidbit.
The only thing I Must try to test is how the new Looktype works in my ot and if it works.

EDIT: it doesn't crash when creating new object as item. I'm using the 1.0.5 version.
 
There are some things that I haven't gotten to test yet and I would like to know if someone has already done it and it worked. For example, if creating a new Item / Outfit, do you need to update OTB in order not to make an error?
The times I used Assetts Editor was to replace an existing Sprite with another one. For example, take a common global set, change Sprite and attributes to "create a new" Item but all are static. To create an animated item, does it have to be new or to use the replacement method as well?
I'm busy with certain things at the moment so there are some days that I don't try anything new but as soon as possible I want to go back.
 
Hey guys!

Assets Editor is an open-source editor for client 12+.

Requirements:
  • Net Core 3.1
Features:
  • Modifying objects.
  • Copy flags between objects.
  • Create new objects.
  • Creating new sprites sheet, merging sprites, exporting and saving as lzma.
View attachment 51814

View attachment 51815

View attachment 51816

View attachment 51817

Currently this editor doesn't check for common sense things, like if you didn't save the object and moved to new one it won't warn you about saving, or creating new object with wrong patterns.

Sources on Releases Ā· Arch-Mina/Assets-Editor (https://github.com/Arch-Mina/Assets-Editor/releases)
@SpiderOT i was thinking about it would cool to have a tool to convert assets into .spr and .spr into assets. So people can work on object builder and you dont kill yourself working on a software from ground up. This looks very nice. I mean its just me giving ideas. Ya probably thinking im an idiot but i tried lol. Thanks again man.
 
There are some things that I haven't gotten to test yet and I would like to know if someone has already done it and it worked. For example, if creating a new Item / Outfit, do you need to update OTB in order not to make an error?
The times I used Assetts Editor was to replace an existing Sprite with another one. For example, take a common global set, change Sprite and attributes to "create a new" Item but all are static. To create an animated item, does it have to be new or to use the replacement method as well?
I'm busy with certain things at the moment so there are some days that I don't try anything new but as soon as possible I want to go back.

1612846586905.png 1612846639358.png

Yes it is working correctly, you will have to update your item.otb after the assets compilation.
 
Thank you alot, looked all over for hours to find something in this form!
 
Like others, replacing extract, perfectly, when pushing Create new, outfit, item, using 1, 32, 32, the windows of creation, disappear, 3 Seconds after program close, no any error.
Using on 12.60 client spr
 
Let me begin by saying: great job! I've just come back after a few years of being dormant and figured that my first order of business would be to port the data editor (that I knew back in the days) to C#!

Well, no need to do that anymore. But the reason I wanted to port it was to use it on Linux and it's halfway there. Would you mind me forking it and porting the UI to a cross-platform framework (QML.NET for example)?

Feel free to get in touch on priv!
 
@CesarZ
It's obvious ObjectBuilder currently in an advanced state compared to this tool, but IMO this tool has more potential if we put some effort here this is gonna be much better than OB
@Indahouse
OpenTibia - Assets Editor (https://otland.net/threads/assets-editor.273557/post-2643903)
@Ziker As far as I know .netcore is a cross-platform you can create a self-contained executable to work on Linux.
of course, I don't mind if you fork it, I would appreciate it if you create a pull request of your contribution on the main repo too
 
@SpiderOT
Yes i found how do it, is working perfect, people need to know never click in a sprite added for show it more bigger in added sprites, otherwise, if you have added others sprites after this grid, you overwrite the next sprites, have reached 280k without problems, working like a charm
Thanks !
 
@CesarZ
It's obvious ObjectBuilder currently in an advanced state compared to this tool, but IMO this tool has more potential if we put some effort here this is gonna be much better than OB
@Indahouse
OpenTibia - Assets Editor (https://otland.net/threads/assets-editor.273557/post-2643903)
@Ziker As far as I know .netcore is a cross-platform you can create a self-contained executable to work on Linux.
of course, I don't mind if you fork it, I would appreciate it if you create a pull request of your contribution on the main repo too
You're correct in that .NET Core is cross-platform, but neither WPF nor WinForms are.

I'll see how porting it to a cross-platform UI framework goes, but fear not, if I get it done I'll create a PR on the main repo. There's no point in maintaining two separate repos if you're open to contributions.
 

@SpiderOT Yea i Hope this develop gets updated. I'm still trying to add a sprite effect and trying to figure it out how it work exactly. I don't want to go to OTC lol.​

 
Back
Top