Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

[Guide]Custom Items using XRay and eAthena

Newbie Spellweaver
Joined
Jul 24, 2007
Messages
8
Reaction score
0
Adding items to XRay/eAthena.

This guide assumes you are using eAthena.

Files we'll be altering:
visionary_tab.txt (Sets ViewID)
idnum2itemdisplaynametable.txt (Identified Item Name)
idnum2itemdesctable.txt (Identified Item Description)
num2itemdisplaynametable.txt (Unidentified Item Name)
num2itemdesctable.txt (Unidentified Item Description)

These two files need to be extracted from sdata.grf:
idnum2itemresnametable.txt (Identified Item Filename)
num2itemresnametable.txt (Unidentified Item Filename)

eAthena:
item_db2.txt

Item Files: (For my example)
Custom.spr (Item Sprite)
Custom.act (Item Script)
CustomDrop.spr (Dropped Item Sprite)
CustomDrop.act (Dropped Item Script)
CustomIcon.bmp (Inventory Icon [29x22])
CustomCollection.bmp (Description Icon [75x100])



Step One: Open visionary_tab. Scroll to the end of the file.
The very last line should be: *_°í±Û

THIS SHOULD ALWAYS BE AT THE BOTTOM OF THE FILE!

Above *_°í±Û, we want to create a new Jump Code. To do this, first we need to find a Jump Code that isn't being used. Log in to your server and type @changelook <number>. Anything in the thousands should be clear. If you don't appear with new gear, chances are you found an empty ViewID.

For the example, we will be using 3000. The bottom of your visionary_tab should now look like this:

!3000 (Jump Code)
*_°í±Û

What does this do? This causes the list to start at the number in the jump code. Another example:

!3000
_Custom_1 (ViewID: 3000)
_Custom_2 (ViewID: 3001)
_Custom_3 (ViewID: 3002)
*_°í±Û

Please take note that regardless of what you put here, it MUST START with an _.

So, back to setting up the item. Our item is called Custom, so our visionary_tab would now look like this:

!3000
_Custom
*_°í±Û

We're done here, you can close Visionary_tab. Remember the name you used here, we will be using it again.


Step 2: Copying the Sprites into your Data folder.

Go to \RO\Data\sprite\¾Ç¼¼»ç¸®\.
You should see two folders: ¿© and ³².
First, the ¿© folder.

Copy Custom.spr and Custom.act to this folder. Rename them to ¿©_Custom.spr and ¿©_Custom.act.

Go back and open the ³² folder.
Copy Custom.spr and Custom.act to this folder as well. Rename them to ³²_Custom.spr and ³²_Custom.act.

Go to \RO\Data\Sprite\¾ÆÀÌÅÛ\.
Copy CustomDrop.spr and CustomDrop.act here. Rename them Custom.spr and Custom.act.

Go to \RO\Data\texture\À¯ÀúÀÎÅÍÆäÀ̽º\collection\.
Copy CustomCollection.bmp here and rename it to Custom.bmp.

Go to \RO\Data\texture\À¯ÀúÀÎÅÍÆäÀ̽º\item\.
Copy CustomIcon.bmp here and rename it to Custom.bmp.


Step 3: TEST!

Log back into your server and type @changelook <number>.
So, using our example, type @changelook 3000
You should see your item appear on you.


Step 4: Add the item to your server database.

Set this up however you like. You need to find an itemID that isn't being used, so use @item <number> to poke around your database (alternatively, search the database manually for numbers you want to use.)

Once you have the number you want, add your item to item_db2.

ID,DBName,ScreenName,Type,Price,Sell,Weight,ATK,DE F,Range,Slot,Job,Upper,Gender,Loc,wLV,eLV,Refineab le,View,{Script},{OnEquip_Script},{OnUnequip_Script}

I'm not going to break this down, seeing as the eAthena wiki has a great explanation for this: (If it ever comes back up: . I'm reproducing the Wiki entry a few posts down assuming the site is still down.)
I will, however, point out the one thing to be sure you set properly.

VIEW. View is the ViewID, which we set back in Step 1. In my example it was 3000.

My Example Item:
6000, Shimmer_Wings,Shimmer Wings,5,,20,3,,3,,3,0xFFFFFFFF,7,2,1,,,0,3000,{},{ },{}


Step 5: Edit idnum2itemresnametable and num2itemresnametable.

Unless you want the item to appear differently when unidentified, you can do the same thing in both files.

At the end, add this line:

<ItemID>#<filename>#

Example:
6000#Custom#


Step 6: Edit num2itemdisplaynametable and idnum2itemdisplaynametable.

For this, I used the DBName.
As always, at the end of the file.

<ItemID>#<DBName>#

Example:
6000#Shimmer_Wings#


Step 7: Edit num2itemdesctable and idnum2itemdesctable.

This is the item's information, description, etc.

<ItemID>#
<Description
Multiple lines are
fine.>
#

Example:
6000#
Shimmer Wings
#

There are extra things you can do in here, but I'm not going to try and explain them (mostly because I don't know all of them yet.)


That's it! Log back in and use @reloaditemdb to have access to your item. @item <ItemID> should create your item.



This is my first guide, so I hope I did well. Here's hoping this helps, seeing as I had a hard time figuring this out with all the information I could find. Good luck and happy gaming!

2011 update: Gods, I have no idea if this still works, haven't messed around with RO in quite a while. Still, I reproduced the guide since it was lost in Ragezone's forum update. I'm also going to reproduce the wiki info from 2007, since the eAthena wiki is down, just in case.
 
Last edited:
Initiate Mage
Joined
May 31, 2005
Messages
2
Reaction score
0
erk i dont have xray...
how to i find the custom id??
 
Experienced Elementalist
Joined
Jun 12, 2005
Messages
260
Reaction score
4
erk i dont have xray...
how to i find the custom id??

You make them O: however you do need xray if you're going to add up to a certain amount... Sorry I dunno how many you can add, haven't fucked with eA in a little bit.
 
Newbie Spellweaver
Joined
Jul 24, 2007
Messages
8
Reaction score
0
Apologies for bumping this so long in it's life, but the guide didn't make the migration oh so long ago and I just noticed (and it bothered me) so I dug out the info via the WayBack Machine. Turns out the eAthena wiki isn't working, who knows how long that's been happening, so I'm reproducing the page I referenced as well, presumably under Creative Commons License.

That said, this method may not even work anymore. I haven't messed around with RO in a few years now.

There's a little more information there, you can read the entire wiki article here:

eAthena Wiki said:
Structure

Well, since i heard that there's no guide into making custom items, i'll post one ;3!

If you got problems with custom weapons, hit Ctrl+F and search for Weapon Sprite Solution

First, lets take a look at this:

ID,DBName,ScreenName,Type,Price,Sell,Weight,ATK,DEF,Range,Slot,Job,Upper,Gender,Loc,wLV,eLV,Refineable,View,{Script},{OnEquip_Script},{OnUnequip_Script}

ID: ID of the item.
DB Name: This first name is the DB name. When you use @item and you know the name of the item, but not the ID, type this name instead. Try making the ScreenName the same as this so you wont get confused ;3!
ScreenName: This is the name the server shows.
Type:

Legend for 'Type' field:
0 = Usable : healing
2 = Usable : other
3 = Misc
4 = Weapon
5 = Armor
6 = Card
7 = Pet Egg
8 = Pet Equipment
10 = Arrow
11 = Usable : delayed consumption (items with script "pet" or "itemskill")

Price: self-explainable ;3
Sell: same as above o..o!
Weight: same as above o..o!
ATK: in case of a weapon, you put the attack amount here o..o
DEF: in case of an armor, you put the defense amount here
Range: same as attack o..o!
Slot: self explainable ;3!
Job: which jobs can use them:

(S.) Novice (2^00): 0x00000001
Swordman (2^01): 0x00000002
Mage (2^02): 0x00000004
Archer (2^03): 0x00000008
Acolyte (2^04): 0x00000010
Merchant (2^05): 0x00000020
Thief (2^06): 0x00000040
Knight (2^07): 0x00000080
Priest (2^08): 0x00000100
Wizard (2^09): 0x00000200
Blacksmith (2^10): 0x00000400
Hunter (2^11): 0x00000800
Assassin (2^12): 0x00001000
Unused (2^13): 0x00002000
Crusader (2^14): 0x00004000
Monk (2^15): 0x00008000
Sage (2^16): 0x00010000
Rogue (2^17): 0x00020000
Alchemist (2^18): 0x00040000
Bard/Dancer (2^19): 0x00080000
Unused (2^20): 0x00100000
Taekwon (2^21): 0x00200000
StarGladiator (2^22): 0x00400000
Soul Linker (2^23): 0x00800000
Gunslinger (2^24): 0x01000000
Ninja (2^25): 0x02000000
All Classes : 0xFFFFFFFF
To combine them, just add them up.


Upper: Now we can specify which kind of classes can use or wear the item/s. They are:

Normal (the very normal ones, 1-1,2-1,2-2): 1
Upper Jobs (Advanced Jobs, such as High Wizards, Champions, etc): 2
Baby Classes: 4
To combine them, just add them up =3! Such as 7 = All classes, 6 = Babies and Upper Jobs, 5 = Babies and normals, 3 = Normal and Upper Jobs.
Gender: male of female o..O!. for male its 1 for female is 0, and 2 for both =3!
Loc: Location of the item (head upper, middle, lower, armor, etc etc):

(2^0) 001 = Lower Head
(2^1) 002 = Right hand
(2^2) 004 = mantle
(2^3) 008 = Acc 1
(2^4) 016 = armor
(2^5) 032 = Left hand
(2^6) 064 = boots
(2^7) 128 = Acc 2
(2^8) 256 = Top head
(2^9) 512 = Middle Head
(2^14) 32678 = Arrow Location
You can use this also with refine/@refine. 0 is for all the locations


wLV: Clarified. Its the weapon level. It can be 1, 2, 3 or 4. It can go higher, but it depends on your refine_db.txt
eLV: Also clarified. The minimum base level you must have to be able to use this
Refineable: if its able to be refined or not o..o 0 for no and 1 for yes.
View: Use this:
[Weapon View IDs]

1 = Daggers
2 = One-Handed Swords
3 = Two-Handed Swords
4 = One-Handed Spears
5 = Two-Handed Spears
6 = One-Handed Axes
7 = Two-Handed Axes
8 = Maces
10 = Wand/Staff
11 = Bows/Crossbows
12 = Knuckle Weapons
13 = Musical Instruments
14 = Whips
15 = Books
16 = Katars
17 = Revolvers
18 = Rifles
19 = Shotguns
20 = Gatling guns
21 = Grenade launchers
22 = Huuma
[END]
[Shield View IDs]

1 = Guard, Novice Guard
2 = Buckler
3 = Shield, Holy Guard, Evangelist
4 = Mirror Shield
[END]
[Headgear View IDs]

0 = None
1 = Goggle
2 = Kitty Band
3 = Glasses
4 = Fancy Flower
5 = Flower Band
6 = Bandana
7 = Turban
8 = Flu Mask
9 = Hair Band
10 = Diver's Goggles
11 = Biretta
12 = Sunglasses
13 = Eye Patch
14 = Cap
15 = Bunny Band
16 = Hat
17 = Ribbon
18 = Circlet
19 = Tiara
20 = Santa Hat
21 = Weird Goatee
22 = Moustache
23 = Single Glass
24 = Beard (Untested)
25 = Granpa Beard
26 = Purple Glasses
27 = Geek Glasses
28 = Big Ribbon
29 = Sweet Gent
30 = Golden Gear
31 = Romantic Gent
32 = Western Grace
33 = Coronet
34 = Cute Ribbon
35 = Monk Hat
36 = Wizard Hat
37 = Sunflower
38 = Angel Wing
39 = Evil Wing
40 = Helm
41 = Majestic Goat
42 = Snow Horn
43 = Spiky Band
44 = Wedding Veil
45 = Crown
46 = Mini Propeller
47 = Mini Glasses
48 = Army Cap
49 = Pierrot Nose
50 = Zoro Masque
51 = Munak Hat
52 = Gangster Mask
53 = Iron Cane
54 = Cigar
55 = Pipe
56 = Romantic Flower
57 = Romantic Leaf
58 = Jack a Dandy
59 = Stop Post
60 = Doctor Band
61 = Ghost Bandana
62 = Red Bandana
63 = Eagle Eyes
64 = Nurse Cap
65 = Mr.Smile
66 = Bomb Wick
67 = Sakkat
68 = Phantom of the Opera
69 = Heaven Ring
70 = Ear Muffs
71 = Antlers
72 = Apple o' Archer
73 = Elven Ears
74 = Pirate Bandana
75 = Mr.Scream
76 = Poo Poo Hat
77 = Funeral Hat
78 = Masquerade
79 = Welding Mask
80 = Pretend Murder
81 = Stellar
82 = Blinker
83 = Binoculars
84 = Goblin Mask
85 = Green Feeler
86 = Orc Helm
87 = Headset
88 = Jewel Crown
89 = Joker Jester
90 = Oxygen Mask
91 = Gas Mask
92 = Machoman's Glasses
93 = Grand Circlet
94 = Puppy Love
95 = Safety Helmet
96 = Indian Fillet
97 = Aerial
98 = Ph.D Hat
99 = Lord Kaho's Horn
100 = Fin Helm
101 = Egg Shell/Novice Eggshell
102 = Boy's Cap
103 = Bone Helm
104 = Feather Bonnet
105 = Corsair
106 = Kafra Band
107 = Heart of Merchant
108 = Parcel Hat
109 = Cake Hat
110 = Angel Helm (Cat's Bell ?)
111 = Chef's Hat
112 = Magic Instructor's Hat
113 = Candle
114 = Spore Hat
115 = Panda Cap
116 = Miner's Helmet (Wing's of Demon ?)
117 = Sunday Hat
118 = Smokie Hat
119 = Lightbulb Hairband
120 = Poring Hat
121 = Cross Hairband
122 = Apple Hat
123 = Deviruchi Hat
124 = Spotted Eggshell
125 = (Innocence of Maiden ?)
126 = Heart Hairpin
127 = Dumpling Decoration
128 = Opera Masque
129 = (Innocence of Maiden ?)
130 = Magician's Hat
131 = Fashion Sunglasses
132 = Crescent Moon Hairpin
133 = Striped Bandana
134 = Mysterious Apple Hat
135 = Innocence of Maiden
136 = Blue Bandana
137 = Sphinx Hat
138 = Solar God Helm
139 = Bongun Hat
140 = Unknown item, Hair related item
[END]
[Ammo]

1 = Arrows
2 = Throwable daggers
3 = Bullets
4 = Shells
5 = Grenades
6 = Shurikens
7 = Kunais
Credits for this goes to Spamrat and his cool DB editor =D! Its a bit outdated too (the one i have x_X!) If you want newer ID's, search for the item that has it and look for the last number before ,{} This only applies for weapons with sprites and mostly headgears.


{Script}: This is where you put your item bonus. Whether it's an usable item or an equip item, it will take effect according to the item type.


{OnEquip_Script}: This is where the bonus you want to be applied upon equiping goes. It will only execute as soon as you equip the item.


{OnUnequip_Script}: This is where the bonus you want to be applied upon unequiping goes. It will only execute as soon as you unequip the item.
 
Last edited:
Back
Top