Jump to content
Returning Members: Password Reset Required ×

Recommended Posts

Posted (edited)

Most of you probably already know this, but it’s still a good idea to document it here.

Sometimes you may want to remove annoying buttons you never use, or simply rearrange or resize parts of the UI.

This tutorial will be split into two sections:

  1. Deleting a button
  2. Moving & Resizing

In this part, we’ll focus on deleting a button.
We’ll be using Resource Hacker to modify Conquer.exe, editing the GUI.INI, GUI800X600.ini, Control.ani files, and removing some .dds image files.

Note 1: Make a backup of anything you will modify in case you break your GUI!

Note 2: This has been tested on 6609 I'm not sure about the behavior on older clients.

____________________________________________________________________________________________________________

[1.1] Example: Removing the “Poker” Button

First, type the following command in the game Talk chat: /enablefocus (Credits goes to @Spirited for this command)
This allows you to identify a button’s ID by simply hovering over it.
When you hover over the button, look at the top-left corner of the screen. You’ll see information displayed in this format: [parent -child]

You’ll also see the ANI reference name, which points to the DDS image controlling that button.

  • The first number is the parent window ID
  • The second number is the child window/button ID under that parent

For example: [579 - 3055]

  • 579 → parent container (this holds most of the icons at the top-right area btw)
  • 3055 → the specific ID of the Poker button
  • This exact same format is used inside the GUI.INI files (along with x, y, width, height, etc.).

image.thumb.png.cdbb72535b200682634fd097b1b75e27.png

____________________________________________________________________________________________________________

[1.2] Editing Conquer.exe with Resource Hacker

Now that we have the button ID, open Resource Hacker and load Conquer.exe

  • Click Open
  • Make sure you edit the correct executable (in my case, I’m using the DX9 version, so I edit the exe inside ENV_DX9)

image.png.122f482d670a4dc8305c907e232d5a13.png

Next:

  • Expand the Dialog section
  • You’ll only see parent windows, so search for 579

image.png.ad6d3479f83ffcea68738fb0e036cf42.png

Inside this dialog, you’ll see an approximate layout of all the buttons in that container.
Each line represents a child control under parent 579, written in something similar to a CSV format.

The second value in each line is the button ID we found in-game:

CONTROL "ShowHand", 3055, BUTTON, BS_OWNERDRAW | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 82, 62, 14, 13

image.thumb.png.1e7d39a76fa2b6205fc4bede1124edb5.png

To disable the button: Replace WS_VISIBLE with WS_DISABLED

Updated line: CONTROL "ShowHand", 3055, BUTTON, BS_OWNERDRAW | WS_CHILD | WS_DISABLED | WS_TABSTOP, 82, 62, 14, 13

Now Compile [1] and Save [2] (Make sure to close the client first), a backup will be created automatically under the name Conquer.old.exe in the same file you can keep or delete it.

image.thumb.png.0623affc0305828e538e2ee55e3a8cf6.png

At this point, the button will no longer be clickable, but the image will still be visible.

____________________________________________________________________________________________________________

[1.3] Removing the Button Image

Next, open GUI.INI or GUI800X600 and search for the button entry:

This section defines:

  • Button position and size
  • The ANI section that controls its image

image.png.79624978af34f9e1bd574a4ca6a760b5.png

Now open: ani/Control.ani

Search for: [Dentrance_DentranceBtn]

You’ll find four frames, each pointing to a DDS image used for different button states:

image.png.7a8c35a59026d88ec17877a8823000f7.png

  • Simply delete this entire section.
  • Once removed, the button will be completely gone when you open the client.

____________________________________________________________________________________________________________

[1.4] Optional Cleanup

For extra cleanup, you can also delete the DDS image files from their directory since they’re no longer needed alongside the entries from GUI.ini

However, removing the ANI section alone is enough to fully hide the button.

____________________________________________________________________________________________________________

[1.5] Alternative Method (Without /enablefocus)

If you can’t use the /enablefocus command, you can use WinSpy instead.

  • Drag the WinSpy finder tool (shown in the screenshot below)

  • Drop it on the button you want to remove

  • WinSpy will give you the Caption, which matches the first string in the Resource Hacker control entry.

  • Note: WinSpy does not provide the window ID
    So you’ll need to:

    • Search for that caption string in Resource Hacker using CTRL + F

    • Locate the matching control manually

    • And that’s it.

image.png.52e504bcf8ef51be623059521f7515a8.png

 

image.thumb.png.f82075d7a84b41df794e8869fee31403.png

____________________________________________________________________________________________________________

[2.1] Resizing/Moving a button

By now, resizing should be straightforward. Simply adjust the size values in the GUI.INI file.
Make sure to apply the same changes in GUI800X600.ini as well, so the button displays correctly at both resolutions.

If you prefer a visual approach, you can use the /enablefocus command. This allows you to resize a button by dragging its corners. For example, if the nobility icon appears too large, you can reduce its size by dragging the edges of the red selection box.

You can also move the button by dragging it, and the new position will be automatically saved to your GUI.INI file.

Note 1: I recommend avoiding direct visual editing when possible. It’s easy to accidentally click another button (such as a nearby button), and sometimes the UI may behave unpredictably. In some cases, the button can end up outside the window boundaries and become invisible.

Note 2: Resizing won't work for most types of buttons because their sizes will depend only on the actual DDS image, what you will control is the area that's clickable (the red square) when resizing.

Note 3: You will often make the button unclickable when moving it with the command, to fix that just restart the client and it will be clickable in its new position.

Note 4: If you wanna move an element, you won't be able to move it outside its parent container (you can know the element boundaries by [RED] edges and parent by [YELLOW] edges when hovering with the command enabled) for example the settings button, you won't be able to move it (if someone figures out a solution maybe they can drop in comments! 🙂 )

image.png.fc3794d57cdd025ee50b0e36309c27ad.png

 

image.png.906a4175c885c4e8a97bc54e781ab1b9.png After Resize image.png.c77394352e946e7d58072a371dcc4d02.png

Note 5: You can also use WinSpy if you want to experiment with a button’s position without restarting the client or using in-game commands. This helps reduce the risk of breaking something, since WinSpy changes are applied only in memory and will be discarded once the client is restarted.

image.png

Edited by xFranko
  • 5 months later...
Posted (edited)

regarding the parent box(red) and the issue with moving the clickable area/child box(yellow) you can make the parent box as big as you want or as big as the screen and then you will be able to move the clickable area/button/gui to wherever you want. the only problem you might come across is it being under or above some other part of the GUI but that is a simple fix by adding a line like "ChickToTop=1" or "ChickToTop=0" inside of the gui.ini file for that exact GUI setup. I have made other posts to help others out when this was brought up but since this was such an informative post and i noticed you ask about a solution i figured i would share something that might help others. all i did was use the enable and disable focus commands along with control.ani and gui.ini to make changes accurately, yes it sucks closing and opening the client a million times but you can essentially do anything you want to the client UI and make it look however you want from any other patch or completely custom. I cant say that i know what all these do but here are some GUI text that control height, font type and size, escape button to close and zoom amount on the ani/dds image you use for that button/element.

*These can all use 0 or 1 and potentially higher or lower numbers for different outcomes*

EscEnable=0
ChickToTop=0
SetBottomInMoveBind=0
Base=0 up to 8(possibly higher not tested)

something like these control what other guis close, move behind or off focus. for example when you open something with multiple tabs like the wardrobe gui where it has multiple pages and tabs that open, close and move. It has been a little bit since i have done some work related to GUI so bear with me but these IDs/numbers on the closebind and movebind are either the parent ID or child ID so either 0-130(parent) or 130-342(child) 

CloseBind=589
MoveBind=589,593,592,657,658,659,660,661,664 - these numbers are other IDs in GUI.ini

this GUI code/line links to info or a line for text(usually) from either Cn_res.ini, UStrRes.ini or Server_Cn_Res.ini

strTipInfo=STR_ZHUJIEMIAN_TITLE2

 

these control font size and also uses text from either Cn_Res.ini, UStrRes.ini or Server_Cn_Res.ini, text= is what grabs the text from the ini file and fontsize is self explanatory 

FontColor=0xffefe0c7
text=STR_GANG_TIPS_LIANQIPHB16
FontSize=16


This image is from a 7916 client so it is 3.0 and around a month behind retail right now. the buttons on the bottom main UI like wardrobe and ranking required me to use "ChickToTop=1" so they were not underneath the main UI file/image as they were both originally on top of the screen not underneath or on top of anything. Also regarding your comment about the settings button, you can clearly see i was able to move it all the way to the bottom of the screen and make it fit the classic themed UI. All of the buttons work exactly like a 5065 or any other below 5517 client. I still have some work to go but when i am done you will not be able to tell the difference and all of this work was done with only the enable/disable focus commands, gui.ini, control.ani and a little bit of time to search for file names and to go through any other necessary file. hope this helps whoever may need some info on client work!

how my 7916 s4etup looks after the gui.ini and control.ani work
7916ClassicDesign.thumb.png.b18c9560318f4e2f8e6b2d849f84170d.png


How my 7916 setup originally looked before the changes i made in gui.ini and control.ani

7916beforeguiwork.thumb.png.bf95cd5025397d815caa35544150d2df.png

Edited by Paradox
To Add comparison photos

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...