Horizon: Zero Dawn

Can someone please tell me how to use special k mod…please … This will be very helpful

Basically just run the game once, then navigate to \Documents\My Mods\SpecialK\Profiles\Horizon Zero Dawn and open the SpecialK.ini file and clear it out.

  • If you play in fullscreen mode copy/paste the frame rate limiting config from the opening post to the config file:
[Macro.FPS]
Ctrl+Shift+1=TargetFPS 60
Ctrl+Shift+2=TargetFPS 45
Ctrl+Shift+3=TargetFPS 30
Ctrl+Shift+0=TargetFPS 0

[API.Hook]
LastKnown=64
d3d11=false
d3d12=true

[Render.FrameRate]
TargetFPS=60.0
SleeplessRenderThread=true
SleeplessWindowThread=true
  • If you play in borderless mode, copy/paste the appropriate config for that:
[API.Hook]
LastKnown=64
d3d11=false
d3d12=true
d3d9=false
d3d9ex=false
OpenGL=false
Vulkan=false

[Window.System]
Borderless=true
Center=true
RenderInBackground=true
Fullscreen=true
OverrideRes=3840x2160

[Render.FrameRate]
TargetFPS=50.0
SleeplessRenderThread=true
SleeplessWindowThread=true
PreRenderLimit=3
BackBufferCount=2
PresentationInterval=-1

[SpecialK.System]
EnableCEGUI=false
ShowEULA=false

[Display.Output]
ForceWindowed=true

[Render.DXGI]
UseFlipDiscard=true
AllowTearingInDWM=true
SwapChainWait=10

See opening post at the very top as well as the upper part of this reply of mine.

Thank you very much! I will try now.

  • Can I put any TargetFPS cap?
  • Do I have a way of knowing it works other than seeing framerate go up and down?
  • Is there any benefit running borderless over fullscreen in HZD?
  • Any other way to use Special K? I heard about widgets and such.
    Sorry for the question bombardment, I could not find a proper beginning-to-end tutorial.

Widgets are not working or OSD in DX12 games. Limited support in that. So you have to do manual ini file edits for this game.

With SK settings for borderless settings, it can run better than Fullscreen exclusive to certain extent and not have any issues. Also most ppl’s HDR works properly when game runs Borderless mode instead of fullscreen. Otherwise you have to constantly change stuff.

Edit: Forgot to mention yes you can put any fps rate you want to limit to. I should point out in borderless mode turn on Vsync somewhere. Ingame easiest way to do it. That will prevent the hard slow downs and massive drops in fps.

Thank you.
So far I have used Aemony’s settings in my ini but the limiter doesn’t work.
I hit Ctrl+Shift+3 and it doesn’t limit to 30.
Should I change something in NVCP or some other place?
In-game settings are “Unlimited”.

It does for me in Benchmark and ingame. Sure you using the correct settings? My monitor is 144Hz one so here is my macro settings.

[Macro.FPS]
Ctrl+Shift+1=TargetFPS 72
Ctrl+Shift+2=TargetFPS 48
Ctrl+Shift+3=TargetFPS 36
Ctrl+Shift+0=TargetFPS 144

Edit: Yeah make sure you running specialK b/c in that scenario that means none of the stuff is working at all. Unless you did local install.

do you started the service from specialk?

I thought I don’t need to start the service and it recognizes it from steam game mgmt?
I used the download button at the top and just extracted folder to some place so I assume this is “local install”.
Here are the ini settings:

[Macro.FPS]
Ctrl+Shift+1=TargetFPS 72
Ctrl+Shift+2=TargetFPS 48
Ctrl+Shift+3=TargetFPS 36
Ctrl+Shift+0=TargetFPS 144

[API.Hook]
LastKnown=64
d3d11=false
d3d12=true

[Render.FrameRate]
TargetFPS=72.0
SleeplessRenderThread=true
SleeplessWindowThread=true

Hmm, might be the same potential issue (or just confusion as Kaldaien didn’t really mention it) in regards to where to put it.

Open \Documents\My Mods\SpecialK\Global\macros.ini and add the below to that file instead, and then restart the game:

[Macro.FPS]
Ctrl+Shift+1=TargetFPS 60
Ctrl+Shift+2=TargetFPS 45
Ctrl+Shift+3=TargetFPS 30
Ctrl+Shift+0=TargetFPS 0

No, the service must be started if you’re using the global install. To use a local install you must copy SpecialK64.dll to the game folder and rename it to dxgi.dll, but then the config file will also be stored in the game folder and called dxgi.ini.

Edit: The “Steam Game Management” tab of SKIF is just a handy quick launch tool for Steam games. Simply launching a game from there will not make Special K inject itself into it when the service is not running.

I’ll create a separate suggestion topic to add a warning to SKIF about that.

Macros work for me in the specialK.ini file. :slight_smile: Yeah its just he wasn’t even running the service.

Ah, didn’t for me… Weird.

No, just start the global injection from SKIF. Doesn’t matter from where you launch the game.

The “Steam Game Management” tab of SKIF is just a handy quick launch tool for Steam games. Simply launching a game from there will not make Special K inject itself into it when the service is not running.

NOW I understand! This was not clear, maybe it’s just me but now I get it, thanks, will try.

I put it near the top though. I know it worked b/c that’s how I did benchmarks for each of those fps locks. :slight_smile:

OK now it works! I will see how it runs.
FYI there are 2 odd behaviors (one of which might by design):

  • After fiddling with ini, when I launch the game, it launches bordered window mode and is limited to 60fps; I then minimize and maximize it and it maximizes to fullscreen with 72fps, so it might be game issue. After closing the game and relaunching it, it just works.
  • After launching the game, the ini is overwritten with extra config data. I assume that’s ok.

Probably a misconfiguration between the game and Special K. Some of Special K’s parameters (for the borderless mode in particular) forces overrides for the game which might not match what the game itself is configured to do – causing minor disconnect.

If everything works after a game restart then all is fine, basically.

And yes, the added config parameters are of no real relevance. It’s just parameters that Special K defaults to their defaulted values, and most of those parameters doesn’t really do anything in this game either.

Thanks for all the help and the quick and thorough information!
Other than setting the FPS cap, are there any more settings this game can benefit from using the Special K?

No, not really as of right now. If Kaldaien ever breaks through the block the game have with manipulating the swapchain we might see him go crazy over adding random enhancements here and there, but right now the FPS limiter is the main usable feature of Special K for this game.

Understood. Now I am at a new “issue” (sorry…).
I saw @HolyDeath3000’s post above with how the cap “smoothes” the frames (that’s why I wanted to use SpecialK), and my graphs don’t look the same.
The game DOES get capped, but the lines are all over the place and CPU/GPU fps are still unlimited.
Have I missed something? This also happens in 36 and 72fps.
https://imgur.com/a/DYi0HXc

Maybe someone here can help me. SK can be globally injected into most of my games no matter what folder I launch the program from except HZD. It must be opened and injected from the root folder with the HZD exe or it never injects itself into the game. The problem I am having with this is that the Steam Overlay doesn’t work for some reason when I do it this way. This causes my controller not to function and my mouse doesn’t free look in game either when you are walking around.

Is there some setting in the SpecialK.ini causing this? I don’t have this problem with any of my other games I use SK for so I’m really confused.