claude-memory/graph/solutions/foundry-vtt-class-level-up-system-with-active-effects-540f11.md
Cal Corum b140d4d82a migrate: 313 memories from MemoryGraph
- 313 new markdown files created
- 30 relationships embedded
- 313 entries indexed
- State initialized with usage data
2026-02-13 11:11:48 -06:00

13 lines
978 B
Markdown

---
id: 540f115e-340e-42e5-a8ea-a9d16de72af8
type: solution
title: "Foundry VTT class level-up system with Active Effects"
tags: [vagabond-rpg, foundryvtt, active-effects, level-up, drag-drop, pattern]
importance: 0.7
confidence: 0.8
created: "2025-12-16T18:14:21.086558+00:00"
updated: "2025-12-16T18:14:21.086558+00:00"
---
Implemented class level-up workflow for Vagabond RPG Foundry system. Key patterns: (1) Class features with changes[] arrays auto-create ActiveEffects on drop and level-up. (2) LevelUpDialog (ApplicationV2) shows features gained per level with perk selection. (3) applyClassFeatures() is idempotent - checks existing effects before creating. (4) Fixed duplicate item creation bug - was caused by adding manual drop listeners while ActorSheetV2 already handles drops via dragDrop config. Solution: use dragDrop: [{dropSelector: null}] in DEFAULT_OPTIONS instead of manual addEventListener. (5) Docker PUID/PGID needed for LevelDB pack file permissions.