Gw2 Hook

Gw2Hook is a fork of ReShade which target only Guild Wars 2.

Modifying Guild Wars 2 is not supported by Arena.Net or NCSoft. Use it at your own risk.


This aims at removing the fog in Gw2, but I decided to add more functions to it. This at still in an early stage, and should be used keeping this in mind.  Also, I’ve never used DirectX nor any low-level Graphic API and rarely used C++, the code is far from being clean!

So, to remove the fog, I installed a hook on the CreatePixelShader, so I have access to each shader’s bytecode. After some researches, I found a pattern in the bytecode that is used to apply the fog, so basically I just had to change a mad (multiply and add) op that applied the final tex to the object with the fog to a mov (which… move the tex, without adding the fog). It does the same for removing bloom and forcing sun to its maximum size.

To skip the HUD, I removed the hook in on_present that applied the shaders, apply the shaders at only specific state in the rendering:

Before the game render the character’s names, used if there is a name onscreen.

Before the game render the HUD, that is used as a fallback if there’s no name in the scene.

Latest version:

Download :


You need to have Gw2’s shader setting on High and Native render sampling.

      If you only want to remove the fog/bloom

1.       Download the .zip from above.

2.       Go to your GuildWars 2 installation directory.

3.       Extract the zip in this folder in order to merge /bin64 folders.

a.       See here if you are using ArcDPS.

If you want to use the included Shaders and preset

1.       Download the .zip from above.

2.       Go to your GuildWars 2 installation directory.

3.       Extract the zip in this folder in order to merge /bin64 folders.

a.       See here if you are using ArcDPS.

4.       Start the game.

5.       When it’s loaded, open the menu with Shift+F2

6.       Click on Continue, then on    +     .

7.       Enter the name you want (like “config”, or “preset”), and press Enter.

8.       Check the shaders you want (You can enable them all).

9.       Click on Continue, then on Finish.

If you want to create your own preset or use an existing one

4.       Download the .zip from above.

5.       Go to your GuildWars 2 installation directory.

6.       Extract the zip in this folder in order to merge /bin64 folders.

7.       If you want to have the full ReShade shader pack:

a.       Go to

b.       “Clone or download” - > Download as a zip.

c.        Extract the two folder from this .zip in addons/Gw2Hook/, so you have addons/Gw2Hook /Shaders and addons/Gw2Hook /Textures.

                                                                                                  i.      You should delete individual textures and shaders that you won’t use, as they will increase loading time.

d.       Start the game

e.       Open ReShade’s UI with Shift-F2

f.        If you want to use a custom preset, copy it in addons/Gw2Hook/Presets.

g.       Follow the instruction, select your preset or create your own.

h.       You can place additional Shaders (.fx) in the /Shaders folder. You can add a preset by pasting it in the addons/Gw2Hook/Presets folder and select it with the + button on the UI.


·         All ReShade normal functions (UI, Shaders, …).

·         No network monitoring.

·         Shaders are applied before the game draw the HUD.

·         ReShade UI is drawn on top of the game's HUD.

·         Choose fog intensity.

·         Disable bloom from post-processing.

·         Increase sun ray size from post-processing.

·         Change preset with map or region.

Know issues:



Release 1.2.0

·         Rebased on latest ReShade's version.

·         Improved performances.

·         Removed occasional stutter.

·         Changing fog distance don't cause stutter anymore.

·         Removed the sun shader edit, was often ugly, and at best meh.

·         Dut to the change in ReShade, code that prevented shaders from reloading is removed, you should now use Performance Mode.

·         Shader's injection point can now be changed in setting, use it only if you know what you're doing !


Release 1.1.0

·         Modified with the help of Chris Cleary to be TOS compliant.

·         Changed folder structures, files are now stored in [GuildWars 2]/addons/Gw2Hook/

·         Fog distance is locked to 1 when entering a competitive map.

·         Fog distance can now be changed in real-time.

·         Added Auto preset selection option, that allow to use specific preset in specific map or region.

·         Removed the lightmap hook for now, will be added back when it will be usefull.

·         Fixed a bug that affected performance in some instances.


Release 1.0.8

·         Improved performance and stability.


Release 1.0.7

·         Added tab for Gw2 specific settings.

·         Fixed bug with Skip UI setting.

·         Improved depthbuffer stability.


Release 1.0.5

·         Bugfix: fixed reshade version error with ReShade’s shaderpack


Release 1.0.4

·         Bugfix: UI skip setting save correctly.


Release 1.0.3

·         Added a toggle option for UI skip.

·         Various bugfix.


Release 1.0.2

·         Changing map don’t force effects compilation.

·         Reduced splash UI size.

·         Bugfix: Improved lightmap stability.


Release 1.0.0

·         First release.


Beta 2.2.0

·         Improved injection method to be able to draw PostFX in any buffer.

·         Improved injection point, now icons are skipped.

·         Added Light map to useable buffer from shader.


Beta 2.0.0

·         Added an option to remove bloom from Gw2 post-processing.

·         Added an option to force the sun ray to be max sized, using Gw2 post-processing.

·         Full code cleanup.


Beta 1.9.0

·         Added a fog intensity slider.

·         Fixed new character selection screen.


Beta 1.8.0

·         Added a “Reduced” option for fog.

·         Added few preconfigured shaders file to the archive.


Beta 1.7.1

·         Bugfix: Hide the HUD in-game will not prevent FX to be drawn.


Beta 1.7.0

·         Added toggle option for the fog (under General).

·         Improved injection, names are skipped.


Beta 1.6.0

·         Improved performances.


Beta 1.5.0

·         FX now ignores the HUD (CreateVertexShader and SetVertexShader hook).

·         Removed network check.

·         Removed unused DirectX 10+ components.

·         Changed default UI color.


Beta 1.0.0

·         Added CreatePixelShader hook that edit on the fly pixel shader to remove the fog.




Be aware that this is a side project, I’m a student and will not be able to spend too much time supporting this tool.

Reddit : Grenbur

InGame : Grenbur / Orthros.5913