Per-user character profiles (gitignored, survive git pulls):
- config/profiles/<name>/profile.ini overrides any params.ini key
(runs, difficulty, char type, keybinds...). Priority:
custom.ini > profile.ini > params.ini. Injected into _select_val and
all 22 build-section merges.
- Active profile selected via config/active_profile.txt (gitignored);
Config.get/set_active_profile + list_profiles/list_pickit_profiles.
Shared pickit profiles (git-tracked team content):
- config/pickit_profiles/<set>/*.bnip - one folder per season phase,
built once, shared via git. Selected per user with
[general] pickit_profile=<set> in their profile.
- Pickit dir priority: config/profiles/<me>/pickit/ (personal)
> config/pickit_profiles/<set>/ > config/bnip/ > default.bnip.
Menu integration (main.py):
- startup banner shows active profile + pickit set + available lists
- "end" hotkey cycles character profiles (applies on restart)
Verified: fistman profile active end-to-end (general/char/build-section
overrides + shared pickit set resolution + 474 expressions loaded).
Co-Authored-By: Claude Fable 5 <[email protected]>