Skip to content

Releases: Azazel666/gm-deck

v1.3.0

Choose a tag to compare

@Azazel666 Azazel666 released this 20 Feb 19:15

[1.3.0] - 2026-02-17

Added

  • Sound Auto-Play for Cinematic Cut-ins: Drag a sound from a Playlist into the cut-in config to have it play automatically when the cut-in is shown

    • Drag-and-drop from Foundry's Playlist sidebar into the sound drop zone
    • Volume slider (0–100%) for controlling sound playback level
    • Loop toggle for repeating sounds (default on)
    • All currently playing playlist sounds are paused when the cut-in plays and resume from where they left off when dismissed
    • Sound is only available when dismissal mode is set to "GM Dismiss" or "Auto-Dismiss" (not player-dismiss, since players could dismiss mid-sound)
    • Sound section dynamically shows/hides when changing dismissal mode
    • Only the GM client controls playlist pause/resume to avoid conflicts across clients
  • Text Layer Max Width Control: Added a "Max Width (%)" setting to text layers

    • Adjustable from 10% to 100% in 5% increments (default 80%)
    • Controls how wide the text block can stretch across the screen
    • Useful for constraining long text to a specific area or allowing it to fill the full width

Fixed

  • No sound effect integration for cut-ins (listed in 1.0.0 known limitations) is now resolved

1.2.0

Choose a tag to compare

@Azazel666 Azazel666 released this 04 Jan 11:12

[1.2.0] - 2025-01-02

Added

  • Global Items Feature: Macros and cinematic cut-ins can now be marked as "global" to appear on all scenes

    • Right-click any macro or cut-in in the deck and select "Make Global" to make it available across all scenes
    • Global items display a distinctive gold globe badge in the top-left corner
    • Subtle gold border enhancement on global items for better visual distinction
    • Right-click context menu dynamically shows "Make Global" or "Make Scene-Specific" based on current state
    • Tiles remain scene-specific only (cannot be made global, as they are physically placed in scenes)
    • Global items stored in world settings, separate from scene-specific items in scene flags
    • Duplicate prevention: cannot add the same item to both global and scene-specific decks
    • Tooltip shows "(Global)" indicator for global items
    • API method: game.modules.get('gm-deck').api.toggleItemGlobalStatus(itemId)
  • Enhanced Panel Start Behavior Setting: Improved control over panel state when switching scenes

    • New "Panel Start Behavior" setting with three options:
      • Always Start Open (default): Panel always opens expanded when switching scenes
      • Always Start Collapsed: Panel always opens minimized when switching scenes
      • Remember Last State: Panel remembers whether it was minimized or expanded and maintains that state across scene changes
    • Replaces the old "Start Collapsed" boolean setting with more flexible choice-based setting
    • Panel state is saved automatically when you manually minimize or maximize the panel
    • Initialization flag prevents automatic state overwrites during scene loading
    • Client-scoped setting (each user can have their own preference)

Changed

  • Context menu for tiles now shows only "Remove from Deck" (no global toggle, since tiles are scene-specific)
  • Context menu for macros and cut-ins now includes global toggle option before other options
  • Panel initialization improved to prevent unwanted state changes during scene transitions

Technical

  • Added globalItems world setting to store cross-scene items
  • Added rememberedMinimizedState client setting to track panel state
  • Updated GMDeckData class with new methods: getGlobalItems(), setGlobalItems(), getCombinedItems(), toggleItemGlobalStatus()
  • All item retrieval methods now check both global and scene-specific storage
  • Enhanced GMDeckApp with initialization flag to prevent state saving during panel creation
  • Event listeners added to minimize/maximize window controls for state tracking
  • Template updates to display global badge overlay conditionally
  • CSS additions for global item badge styling and hover effects

v1.1.0

Choose a tag to compare

@Azazel666 Azazel666 released this 21 Dec 13:00

[1.1.0] - 2024-12-21

Added

  • Additional Font Options: Expanded font selection for text layers with 7 new Foundry VTT fonts:
    • Amiri (elegant serif font with Arabic origins)
    • Bruno Ace (bold, modern display font)
    • Courier (classic monospace typewriter font)
    • Modesto Condensed (condensed vintage display font)
    • Signika (rounded, friendly sans-serif)
    • Times (classic serif newspaper font)
    • All fonts are now sorted alphabetically for easier selection
  • Line Height Control for Text Layers: Added line-height control for text layers
    • Adjustable from 0.5 to 5.0 in 0.1 increments
    • Default value of 1.0 (normal spacing)
    • Perfect for multi-line text to control spacing between lines
    • Allows for tight, condensed text (< 1.0) or spacious, airy text (> 1.0)

v1.0.0

Choose a tag to compare

@Azazel666 Azazel666 released this 20 Dec 20:17

1.0.0 - 2024-12-20

Added

GM Deck Panel

  • Initial release of GM Deck
  • Scene-specific tile management deck
  • Tile visibility toggle with single click
  • Visual status indicators for tiles:
    • Green border for visible tiles
    • Red border for hidden tiles
    • Yellow border for missing/deleted tiles
    • Status icons (eye/eye-slash) on each button
  • Right-click context menu on tiles to add them to the deck
  • Right-click deck buttons to remove items
  • Draggable panel with persistent position (saved per client)
  • Panel can be minimized by double-clicking the title bar
  • Auto-opens when loading/switching scenes
  • Toggle button in Token Controls to show/hide the panel
  • Automatic cleanup of deleted tiles from the deck
  • Configurable button size (32-64px)
  • Configurable start state (collapsed/expanded)
  • Macro support infrastructure (UI ready, execution functional)
  • Public API for macro and module developers

Cinematic Cut-in Overlays

  • Full cinematic cut-in overlay system for JRPG/Visual Novel style character introductions
  • 9 backdrop styles with unique visual designs:
    • Diagonal Solid: JRPG-style diagonal shape with solid customizable color (primary color only)
    • Black Banner: Horizontal black banner with fixed golden borders (no color customization)
    • Checkered Pattern: Diamond/checkered pattern with customizable colors (primary for pattern, secondary for background)
    • Vertical Split: Vertical gradient split blending primary color with dark (primary color only)
    • Gradient Burst: Radial gradient burst blending primary color with transparency (primary color only)
    • Minimal Fade: Semi-transparent fade with frosted glass blur effect (primary color only)
    • Ornate Frame: Decorative frame with inner glow and double border (primary color only)
    • Corner Brackets: Sci-fi tactical UI style corner brackets (primary and secondary colors)
    • Angular Mask: Advanced character masking with angular geometric shapes (character clipped within diagonal bars, primary and secondary colors)
  • Color customization system:
    • Customize primary and/or secondary colors based on backdrop type
    • Intelligent UI that shows/hides color pickers based on selected backdrop
    • Primary-only backdrops show one color picker (Diagonal Solid, Vertical Split, etc.)
    • Dual-color backdrops show both pickers (Checkered Pattern, Corner Brackets, Angular Mask)
    • Black Banner has no color customization (always uses fixed colors)
    • Live color picker with real-time preview
    • Reset to defaults option
    • Colors stored per cut-in configuration
    • CSS variable-based implementation for performance
  • Multi-layer text overlay system:
    • Add unlimited text layers with individual styling
    • 9 preset positions (Top/Middle/Bottom × Left/Center/Right)
    • Fine-tune positioning with X/Y pixel offsets
    • Custom font selection from available system fonts
    • Font size control (12-120px)
    • Text color picker
    • Optional background panels with custom colors
    • Drag-to-reorder layers
    • Collapsible layer editor for cleaner UI
  • 5 entrance animation styles:
    • Slide Right (character and backdrop slide in from right)
    • Slide Left (character and backdrop slide in from left)
    • Fade (smooth opacity fade-in)
    • Zoom (scale up from center)
    • Diagonal Sweep (diagonal entrance from corner)
  • Customizable animation timing:
    • Entrance duration (100-3000ms)
    • Exit duration (100-2000ms)
    • Separate timing controls for precise control
  • 3 dismissal modes:
    • Auto-Dismiss: Automatically closes after configurable delay (1-10 seconds)
    • User-Dismiss: Any player can click anywhere to dismiss
    • GM-Dismiss: Only GM can dismiss for all connected players with dedicated button
    • Per-cutin override or use module default setting
  • Preset management system:
    • Save cut-in configurations as reusable presets
    • Load presets from dropdown selector
    • Set default preset for new cut-ins
    • Manage presets in module settings (delete, set default)
    • Presets include all configuration except cutin name
  • Audience targeting:
    • Show to all players
    • Or select specific individual players
    • Targeted delivery via socket system
  • Character image positioning:
    • Horizontal alignment (Left/Center/Right)
    • Vertical alignment (Top/Center/Bottom)
    • Special handling for angular-mask backdrop (45% scale, centered vertically)
  • Socket-based multiplayer synchronization:
    • Cut-ins broadcast to selected audience
    • GM can dismiss for all connected players
    • Unique cutin IDs for tracking instances
  • Live preview functionality (GM-only, local preview before showing to players)
  • Edit existing cut-ins from deck context menu
  • Full integration with GM Deck panel (cut-ins appear as deck items)

Technical Features

  • FoundryVTT v13 ApplicationV2 compatibility
  • ES6 module architecture with proper imports
  • Localization support (English included)
  • Scene flags for data storage (deck configurations are scene-specific)
  • Client settings for UI preferences (position, button size)
  • Hook-based architecture for tile updates and deletions
  • Drag-and-drop support for tiles and macros onto the panel
  • Socket system for multiplayer cut-in synchronization
  • CSS custom properties for dynamic color customization
  • Advanced CSS clip-path and masking techniques for angular-mask backdrop
  • Handlebars templates with helper functions (eq helper for conditionals)

Known Limitations

  • No drag-to-reorder functionality for deck items in the panel yet
  • Panel position is absolute (not responsive to window resize)
  • Angular-mask backdrop neon glow effect is simplified (thin line, no advanced glow yet)
  • Text layer drag-to-reorder works but may need refinement for better UX
  • No sound effect integration for cut-ins yet
  • Cut-ins cannot be triggered programmatically via API (must be clicked from deck)