Dynamic HUD only hides gui.top/gui.left; put the icons in mod_gui.get_frame_flow or get_button_flow, not gui.screen.
local mod_gui = require("mod-gui")
-- hides with Dynamic HUD "Mods UI: auto-hide left"
mod_gui.get_frame_flow(player).add({
type = "sprite-button",
name = "vehicle-interiors-chest",
sprite = "item/iron-chest",
style = mod_gui.button_style,
})
-- or top-left cluster: mod_gui.get_button_flow(player).add({ ... })
-- hides with "Mods UI: auto-hide top"
if you make them draggable on gui.screen (or snap near the hotbar with a free position), Dynamic HUD still won’t hide them unless you also sync visibility yourself (e.g. mirror player.gui.left.visible / player.gui.top.visible when Dynamic HUD is active). Easiest path for auto-hide: keep them under mod-gui left or top.
Happy to test a build. Thanks!