About this mod
Mod to auto-hide parts of the HUD (options for stats, pouches, buffs, compass) when not in combat or injured
- Permissions and credits
- Changelogs

This mod will auto hide parts (options for stats, pouches, buffs, compass, hints) of the HUD when not in combat or not injured.
Out of beta!
I am glad to announce with version 1.0.5 everything wished from the beginning is covered!
Pouches
- Pouches now show automatically on use in 1.0.2-beta! Thanks to EddieShoe's for the binding function assist! Mod includes Unlimited Save II now;
Automatically start mod at load save
- Auto start mod on loading save is now good in 1.0.4-beta! Thanks to VadimCool's for finding the proper listening method;
Auto-show Buffs when they update and Hints support
- Showing Buffs automatically and Hints support added in 1.0.5! Check new settings at the bottom section.
- Also buffs update only show on different "ranges" to not show up all the time. So basically it will show only once if update values goes through those thresholds: 0-10%, 10-25%, 25-50%, 50-75%, 75-100% (if it goes back and forth different threshold, it will re-appear once for that range)
⚠️ Buffs support requires an Additional download file! Read installation steps.
If you want to help, please join the modding discord, under the Dynamic / Auto HUD channel. I can also Opt-in the mod and share the points with you its not a problem, I only care to have a nice working mod for my playthrough and everyone else :P
Thanks to everyone help on that discord!

⚠️ 1. It is incompatible with any mod using that script function:
function Player:OnAction(action, activation, value)
⚠️ 2. Automatically showing Buffs when they add / update support is incompatible with any mod changing hud.gfx. I added a support optional file on my Semi Transparent HUD
For modders that wish to make it compatible, read at the bottom of this page.

Follow those steps to install the mod:
1/ Base mod files
- Download main AutoHideHUD file
- Download main AutoHideHUD - Original HUD - Buffs support OR its optional alternative with NoLetterBox (if you are using other mods that rely on hud.gfx, then don't take it, just you won't have buffs dynamically appear unless mod author makes it compatible)
- Extract Archives
- Drop content into your KCD2\Mods folder (create if not exists)
2/ Mod.cfg file
Update 1.0.7: sorry, user.cfg not requireda anymore, please use the mod.cfg located directly in the mod folder for the settings
To load a user.cfg if needed, see this tutorial Installation Guide
Custom bindings
If you wish to show HUD manually, you can bind those commands to some keys:
1. Will show back all HUD temporarily (timing configurable):
bind KEY autohidehud_show_hud
2. Can toggle showing Hints temporarily (same timing as show_hud):
bind KEY autohidehud_toggle_hide_hints
⚠️ KEY = only support F2-F12 from a comment (careful F5/F6/F9? might be used for like quick save / load), in lowercase it seems from some comments, so e.g. f2 and not F2
Auto Hide Settings
Version 1.0.6 (and now 1.0.7) completely changed how you can setup this mod settings, simply by using a mod.cfg file! Look at the Installation steps above, and configure the parameters as needed.
Please note I could not make it work with a mod.cfg file in the mod folder, the file loads before my mod is loaded, so user.cfg was the only way.
How the mod.cfg looks like (sorry its blurry, it is just to give you an idea):


Compatibility (for modders)
- In JPEX, edit the hud.gfx, go to Scripts\frame 1\DoAction
- Replace "fc_addBuff" and "fc_updateBuff" functions as seen below, the new lines are the ones called "flash.external.ExternalInterface.call(":
function fc_addBuff(buffId, iconId, type, order, progress, secondProgress, perkUIName, perkIconId)
{
flash.external.ExternalInterface.call("onAddBuff",buffId);
var _loc9_ = false;
if(order < 0)
{
_loc9_ = g_BuffLeftNotifMngr.Insert(buffId,Math.abs(order),-1,[iconId,type,progress,secondProgress,perkIconId]);
}
else
{
_loc9_ = g_BuffRightNotifMngr.Insert(buffId,order,-1,[iconId,type,progress,secondProgress,perkIconId]);
}
if(_loc9_ && type == Enum.BUFF_TYPE_PERK && perkUIName != undefined && perkUIName != "")
{
g_CommonNotifMngr.Insert(perkIconId,Enum.GetPriorityByEventType(Enum.PERK_EVENT),Enum.LONG_NOTIFICATION_DURATION,[Enum.PERK_EVENT,Enum.PERK_ACTIVATED,perkIconId,perkUIName]);
}
}
function fc_updateBuff(buffId, progress, secondProgress)
{
if(g_BuffLeftNotifMngr.Contain(buffId))
{
g_BuffLeftNotifMngr.Change(buffId,[progress,secondProgress]);
flash.external.ExternalInterface.call("onUpdateBuff",buffId,progress);
}
else if(g_BuffRightNotifMngr.Contain(buffId))
{
g_BuffRightNotifMngr.Change(buffId,[progress,secondProgress]);
flash.external.ExternalInterface.call("onUpdateBuff",buffId,progress);
}
}