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!

[Granado Espada] Client Structure

Newbie Spellweaver
Joined
Oct 4, 2017
Messages
31
Reaction score
36

Granado Espada Client Structure​

Note: For this guide, I'm referencing steam retail clients, as well as my own development files for v28. Much of this information is off the top of my head, so bear with me. I haven't done much development for the game as of late. I'll go into more detail about various data folders at some point, but for now, I thought that, at least, having a clear picture of the client structure would be a useful starting point for new developers.

Main Directory (Let's call it "GEClient")​

  • ge folder containing game assets and data files. These files are stored in encrypted zip files using the .ipf file extension.
  • release folder containing game executable, configs, launcher/patcher, and a few subfolders that I'll explain below.
  • BugTrap.dll: see below in "GEClient/release contents" section
  • Uninstaller for client is usually found here. Additionally, many retail clients will have launcher/patcher here.
  • Various Updater configuration files.

GEClient/release/ contents​

  • patch folder: contains patcher application and patcher configurations
  • res folder: retail folder containing launcher/patcher skin
  • replay folder: Granado Espada Client used to have a built-in game window recorder. Unsure if the functionality still exists in modern clients, but this folder is where recorded video would be saved to.
  • screenshot folder: screenshots automatically get saved here. print screen key is pressed (including when game window is in background, at least for rGE's v28 client)
  • user folder: contains subfolders and configs containing saved jukebox playlists and ui customizations. One notable subdirectory is the "url" directory, which contains faction (Party) emblems.
  • BugTrap.dll: is a library that catches and handles exceptions.
  • client.xml: client configuration is stored here. URLs for various services and basic user settings such as volume settings are found here.
  • d3dx9_variousVersions.dll: various DirectX 9 libraries used by the game's graphics handling.
  • dbghelp.dll: another library included with BugTrap
  • fmod.dll: is used for adaptive audio for sound engine.
  • ge.exe: main game client executable.
  • geConfig.exe: sets various graphical settings such as window resolution, fullscreen mode, and various LOD settings.
  • geLanguage_Kor.lng: handles korean localization?
  • geSteamClientModule.dll: steam integration for GE client is handled through this, I guess?
  • HotKey.exe: user tool to customize keyboard shortcuts for various game functions.
  • libcurl.dll: is used for getting assets from the web, I'd assume that we're talking about things like party emblems and family profile image assets.
  • Loading.bmp: splash displayed when launching client
  • msvcp60.dll: another common library, this one includes various functionality of Microsoft Visual C++
  • Opcode.dll: not my area of expertise, but I'd assume that this does what it says on the tin and handles game opcode.
  • pathengine.dll: library. Again, literally what it says on the tin.
  • pathengined.dll: Another library used by PathEngine. see above
  • QueryLoggingWrapper.dll: no idea what this guy is used for, more research is required.
  • serverlist.xml: xml file containing connection info to talk to game server. Note: The IPs and Ports found in this table (at least for version 28 and earlier, I'm not sure about v32 and higher versions) are the IPs and Ports for the Barracks Daemons. I'm not sure if more than 2 addresses can be defined per server, but I know that in rGE, we used 2 Barracks daemons. Retail also seems to use 2 Barracks Daemons. Why? Your guess is as good as mine, though I'm guessing that there's a simple and boring explanation of "redundancy." More research on this would be good though...
  • serverlist_recent.xml: Same concept as serverlist.xml. Probably only shows last-connected server, or retail simply downloads serverlist.xml as serverlist_recent.xml each time the launcher runs. I'm, once again, not sure, as I haven't played retail since 2012. I simply keep my clients up to date and save occasional versions in case I ever need to study client assets from a specific version at some point in the future.
  • SpeedTreeRT.dll: library. SpeedTree is used for many of the scenery assets found in Granado Espada
  • SpeedTreeRT_d.dll: Another library used by SpeedTree. see above
  • steam_api.dll: Steam api library found in retail clients. This is found in any steam game.
  • steam_appid.txt: Steam appid, again, steam integration stuff. Again, found in any steam game, though appid number will vary from game to game (OBVIOUSLY)
  • unicows.dll: . Game files are encoded as UTF-8, and, thus, this library is required. I'm not a programmer, so if you've got questions, consult the link, or ask somebody who doesn't roleplay as a programmer like I do. šŸ¤”
  • user.xml: user settings. Volume settings here as well, so I'm guessing the ones found in client.xml might not be used... no idea. geConfig.exe will rewrite this file.
  • useruiposition.xml: Changes to the default UI positions ingame for things like inventory and character equipment windows are stored here.

GEClient/ge/ contents​

Note: any ipf files are simply compressed and encrypted zip files. Also, retail started to split these files up, so we're gonna ignore the trailing numbers following each file, and focus on the actual contents of each category.
  • ai.ipf: game client ai mechanics are defined here. Most cheaters will probably know all about the contents of this, perhaps more than I do.
  • animation.ipf: game animations
  • bg_common.ipf: game scenery assets for zones
  • bg_hi.ipf: High-detail scenery assets
  • bg_hi01.ipf: continuation of High-detail scenery assets. Unsure of why IMC split this into two separate files, unless filesize became an issue, or some other optimization reason.
  • bg_texture.ipf: textures for scenery assets
  • bg.ipf: pathengine data and other files required for building the zones(maps) featured in the game
  • bgm.ipf: game soundtrack files
  • char_hi.ipf: High detail versions of game characters/monsters/npcs models and bones
  • char_low.ipf: Low detail versions of game characters/monsters/npcs models and bones
  • char_mid.ipf: Mid detail versions of game characters/monsters/npcs models and bones
  • char_texture.ipf: Textures for game characters/monsters/npcs models
  • dictionary.ipf: list of strings for client messages as well as blacklist for in-game chat censor
  • director.ipf: not entirely sure, I've never messed with these, but upon inspection, my best guess is that they help to handle various cutscene effects and maybe some camera effects within certain missions/areas. Further investigation should be done with this.
  • effect_3d.ipf: 3D game graphical effects
  • effect_hi.ipf: High-Detail game graphical effects
  • effect_low.ipf: Low-Detail game graphical effects
  • etc.ipf: Error assets which the game will automatically use when assets aren't found in order to prevent some crashes.
  • font.ipf: Fonts utilized by game client
  • ies.ipf: encrypted game datatables
  • item_hi.ipf: High detail item models
  • item_texture.ipf: textures for item models
  • se.ipf: game sound effects (including character voices)
  • shader.ipf: shaders used by the client
  • shared.ipf: not entirely sure, but it looks like this contains mostly just localization scripts and the chat censor. I have never messed with these files so I'm not sure beyond the initial inspection.
  • ui.ipf: client UI assets, including all image assets, backgrounds, thumbnails, map images, but also some things like buff tooltip descriptions (not to be confused with skill tooltip descriptions)
  • xml.ipf: I don't actually remember what is stored in this, but it would stand to reason that whatever xml files that didn't fit neatly into the other categories and didn't need to be encrypted and built into ies files would be placed here. Possibly assets such as the ones used for quest missions and such would be found here. I'll have to unpack a retail client sometime and take a peek to find out for sure..


I am, by no means, the Ultimate, Divine, Designated Authority on matters regarding Granado Espada, so feel free to correct me if I got something wrong, or missed anything, or if there's anything worth adding to this documentation!
 
Last edited:
Back
Top