Files
alexpolo1andClaude Fable 5 b06c77d2e4 Profile system: per-user char profiles + shared pickit profiles
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]>
2026-06-12 10:16:12 +02:00
..

Shared pickit profiles (git-tracked)

One folder per pickit set, e.g. for season phases:

config/pickit_profiles/
  season_start/   *.bnip   (leveling: keep bases, gems, chipped...)
  mid_season/     *.bnip
  endgame/        *.bnip   (GG-only filter)

Drop .bnip (or .nip) files in a folder; a .nipignore works like in config/bnip. These folders ARE committed — build them once, everyone gets them via git pull.

Selecting a set

Per user, in your gitignored config/profiles/<you>/profile.ini:

[general]
pickit_profile=season_start

Priority: config/profiles/<you>/pickit/ (personal set, gitignored)

config/pickit_profiles/<pickit_profile>/ (shared, from this folder) config/bnip/ > config/default.bnip.