WARPGATE
WARP for 2025-07-16

Custom Buttons Guide

Add buttons of your own, with your own icons, to the button row of the Basic Info window, under the HP and SP bars, on a 2025-07-16 Ragnarok Online client, using the Custom Buttons WARP patch.

Patch Add your own buttonsClient 2025-07-16 · 175220998Author CrazyBebopUpdated 2026-09-02
Requirements
WARP 07-16, and an image editor that saves 24-bit BMP
Buttons
The client's own 25, three of them hidden, plus as many as you add, to a total of 127
Icon format
32 x 34 24-bit BMP, magenta FF00FF transparent
The same client before and after, the second with an extra gold star button at the end of the row
The same client, the same character, one line added to the list. Left: the row as the client ships it. Right: a custom button, its icon loaded from the pair of bitmaps named after it.
Basic Info · button row

Point at a button to see the file it loads.

1 Write the list

Warning: Build in one pass. Your list is baked into the exe when the patch runs, so start from your clean, unpatched Ragexe and tick every patch you want in the same run. Running WARP again over an already-patched client gives you a client with only the patches listed that time, and silently drops the rest. Adding a button later means another full run from the clean exe.

Tick Custom Buttons → Add your own buttons in WARP and type one button per line.

The Custom Buttons box in WARP
donate = Options
guide  = WorldMap

The left side is the button's name. The right side names one of the client's own buttons, from the list in step 3, and yours will do whatever that one does. Nothing else to fill in.

Note: The name is also the file name. Call a button donate and the client will go looking for bt_donate.bmp. That is the whole link between the list and the artwork, which is why step 2 matters.

What a name can be

CharactersLetters, digits and _
Length1 to 15
RepeatsEach name once. A duplicate is refused by name.
CaseA duplicate is matched without case, so donate and Donate count as the same name.
LayoutBlank lines are skipped, a line starting with # is a comment, and a ; ends an entry the way a new line does.

The whole list is checked before anything is written, so a typo stops the patch with a message instead of leaving you a half-built client.

2 Draw the icons

Two bitmaps per button. Both live beside the client's own icons.

data\texture\<UI folder>\menu_icon\bt_donate.bmp        resting and hover
data\texture\<UI folder>\menu_icon\bt_donate_press.bmp  held down

<UI folder> is the client's interface folder, 유저인터페이스, which Windows shows as À¯ÀúÀÎÅÍÆäÀ̽º because the name is CP949 bytes. Loose files there override the GRF, so drop your bitmaps in to test and pack them into a GRF later. Either way works.

PropertyValueWhy
Size32 x 34 pixelsMatches the stock icons.
Format24-bit .bmpNot PNG. The client only reads BMP here.
TransparencyFF00FF magentaThere is no alpha channel. Magenta is the see-through colour.

Note: Fill every transparent pixel with pure magenta. Not near-magenta. FE00FE will show up in game as a bright pink fringe around your icon.

Press Show the magenta in the grid above to see what the files look like before the client knocks that colour out.

Note: Leave the artwork until later if you like. A button whose bitmaps are missing still appears and still works. It just draws blank, so you can wire everything up first and paint afterwards.

3 Pick what it does

These are the stock buttons a custom one can borrow from. Write the one you want on the right of the equals sign.

Stats Equipment Inventory Skill Party Guild Quest WorldMap Navigation Options Bank Record Mail Achievement Tip Shop Shortcut Attendance AdventureAgency Reputation AdventureGuide Probability

Case does not matter, so options and Options both work. Anything not on this list is refused, and the message lists what is available. The client's list holds 25 buttons and draws 22: Battleground, Booking and Twitter are hidden on this client, and they are not on this list.

4 Check it

Apply the patch, launch the client and open the Basic Info window. Your button sits at the end of the row, after the client's own, and clicking it does whatever the stock button you named does.

WARP's log prints one line per custom button as it bakes the list in, naming the bt_ file the client will look for and the stock button it acts as. Read it before you launch and the pairing is settled on the spot.

The Basic Info window in game, with a gold star custom button at the end of the button row
The finished row in game. The star is the last tile, added by one line in step 1.

Troubleshooting

Four things account for nearly every report.

Symptom
Cause
Fix
No new button at all
The patch never ran.
WARP prints one line per custom button as it bakes the list in, naming the bt_ file the client will look for and the stock button it acts as. If those lines are not in the log, check SkippedPatches.log and the .epi beside your patched exe for CustomButtons.
The button is there, but blank
The client could not find the bitmaps.
Check the file is named bt_ plus exactly the name you typed, that it sits in menu_icon\ and not the folder above it, and that it really is a .bmp rather than a PNG that has been renamed.
The icon has a pink halo, or a pink box behind it
The transparent area is not exactly FF00FF. An editor anti-aliased the artwork against the magenta, or saved with a slightly shifted palette.
Turn anti-aliasing off for the shape's outer edge, and check the corner pixel is pure magenta before saving.
One of the client's own buttons has vanished
Not this patch: your buttons get their own slots. Another patch in the same build hid it.
Open Hide Buttons (New UI), clear the button you are missing from its selection, and build again.

Worth knowing

QuestionAnswer
How many can I add?Up to 127 buttons in total, including the client's own. The row wraps every 5 and the panel grows to fit.
Does it change the stock buttons?No. They are copied across exactly as the client built them, including anything other patches did to them.
Do they have tooltips?Not yet. A custom button shows no label on hover.
What if I remove the patch?The row goes back to the client's own list. Nothing is left behind.