Hold a configurable gamepad button (Start or Back, default: Start) for a configurable duration to open the map. A short press opens the button's normal menu.
Gamepad only. Default behaviour is fully preserved.
Inspired by Red Dead Redemption 2's hold-Start-to-open-map mechanic.
- Skyrim Special Edition or Anniversary Edition
- SKSE64
- Address Library for SKSE Plugins
Mod manager (recommended):
- Install the requirements above.
- Install QuickMap via your mod manager.
- Launch Skyrim via SKSE.
Manual:
- Install the requirements above.
- Copy
QuickMap.dllandQuickMap.initoData\SKSE\Plugins\. - Launch Skyrim via SKSE.
Edit Data\SKSE\Plugins\QuickMap.ini:
[General]
; Duration in seconds the button must be held to open the map (default: 0.5)
fHoldDuration=0.5
; Button to hold for the map. Short press performs the button's normal function.
; Valid values: Start, Back (case-insensitive)
sButton=StartLogs are written to:
%USERPROFILE%\Documents\My Games\Skyrim Special Edition\SKSE\QuickMap.log
- LLVM/Clang (
clang-cl,lld-link,llvm-lib,llvm-rc,llvm-mt) - xwin — downloads the Windows SDK and MSVC CRT headers/libs
- Ninja
# Arch / CachyOS
sudo pacman -S clang lld llvm ninja
# Install xwin (requires Rust/cargo)
cargo install xwin
# Fetch Windows SDK + MSVC CRT headers to ~/.xwin (one-time, ~700 MB)
xwin splat --output ~/.xwinNote: On first CMake configure,
cmake/toolchains/clang-cl-cross.cmakecreates TitleCase symlinks inside your xwin installation (e.g.Advapi32.lib → advapi32.lib). The originals are untouched. This is required becauselld-linkis case-sensitive but CommonLibSSE-NG references libs with mixed-case names.
- Visual Studio 2022 with Desktop development with C++
git clone --recurse-submodules https://github.com/codepuncher/QuickMap.git
cd QuickMapEdit .env and set SKYRIM_MODS_FOLDER to your mod manager's staging folder:
# Vortex (Linux, Steam):
SKYRIM_MODS_FOLDER="$HOME/.local/share/Steam/steamapps/common/Vortex Mods/skyrimse"
# MO2 (Linux):
# SKYRIM_MODS_FOLDER="$HOME/MO2/mods"./scripts/build.sh
# or directly:
cmake --preset release-linux
cmake --build --preset release-linuxThe DLL lands in build/release-linux/QuickMap.dll.
./scripts/deploy.sh
# or directly (deploy.sh sources .env for you; cmake does not):
source .env && cmake --workflow --preset deployCopies QuickMap.dll, QuickMap.pdb, and QuickMap.ini into $SKYRIM_MODS_FOLDER/QuickMap/SKSE/Plugins/.
cmake --preset release-windows
cmake --build --preset release-windowsThe DLL lands in build/msvc/Release/QuickMap.dll.
Prerequisites:
go install github.com/evilmartians/lefthook@latestclang-formatandclang-tidy(part of LLVM)cmake-format(sudo pacman -S cmake-formaton Arch/CachyOS;pip install cmakelangelsewhere)shellcheck(sudo pacman -S shellcheckon Arch/CachyOS)
lefthook installCMake writes compile_commands.json to the build directory. Symlink it to the project root:
ln -sf build/release-linux/compile_commands.json compile_commands.jsonThe .clangd file sets --target=x86_64-pc-windows-msvc so clangd resolves Windows headers correctly on Linux.
Recommended plugins: nvim-lspconfig with clangd, clangd_extensions.nvim.
git submodule update --remote lib/commonlibsse-ng
git add lib/commonlibsse-ng
git commit -m "chore: update CommonLibSSE-NG submodule"| Workflow | Trigger | What it does |
|---|---|---|
ci.yml |
PRs to main touching source/cmake/vcpkg |
clang-format (ubuntu) → clang-tidy + build (windows, parallel) |
release.yml |
Push of a v* tag or manual workflow_dispatch |
Builds release DLL, publishes GitHub Release; opt-in Nexus Mods upload via dispatch input |
lint.yml |
PRs touching scripts/ |
shellcheck on shell scripts |
pr-title.yml |
PR opened/edited/synchronised | Validates PR title follows Conventional Commits |
Triggered via workflow_dispatch with upload_to_nexus: true and the version input set (e.g. 1.0.0). One-time setup:
- Upload your first file manually via the Nexus Mods web UI to create the file group.
- Add to your repository:
- Secret
NEXUSMODS_API_KEY— your Nexus Mods API key - Variable
NEXUSMODS_FILE_GROUP_ID— the file group ID
- Secret
- Inspired by the hold-Start-to-open-map mechanic in Red Dead Redemption 2
- SKSE by the SKSE Team
- Address Library for SKSE plugins by meh321
- CommonLibSSE-NG by alandtse and contributors
MIT — see LICENSE.