promotional bannermobile promotional banner

Plate-o-Matic

A lightweight, plug-and-play enhancement for default nameplates that adds cleaner visuals, smart target highlighting, and automatic threat tracking without complex setup.

File Details

pom-beta.zip

  • B
  • Mar 13, 2026
  • 15.50 MB
  • 7
  • 12.0.1
  • Retail

File Name

pom-beta.zip

Supported Versions

  • 12.0.1

Plate-o-Matic

Patch Notes – Current Refactor Pass

Core System

  • Unified addon namespace initialization across modules to prevent split-table bugs and nil reference issues.

  • Added strict read-only DB access pattern in mixins and UI modules.

    • Default values and migrations are now owned exclusively by InitDB() in pom.lua.


Base Color System

New modern bucket support

Base color system now supports modern style keys while maintaining full backward compatibility.

New keys supported:

 
boss
eliteCaster
eliteMelee
 

Legacy keys still supported automatically:

 
highlevel
caster
melee
 

Automatic legacy fallback

When reading colors the system now resolves in this order:

 
boss -> highlevel
eliteCaster -> caster
eliteMelee -> melee
 

This ensures old SavedVariables remain fully compatible.


Color Picker Improvements

Base color editor now:

  • Uses the Dragonflight color picker API

  • Properly supports opacity

  • Updates live while dragging the picker

  • Safely restores previous color on cancel


Write safety

Base colors are only written to the database when the user edits a color.

This prevents unnecessary DB bloat and respects the rule:

UI should not create defaults.


Reset behaviour

Resetting base colors now:

  • Restores modern keys

  • Also synchronizes legacy keys

  • Prevents mixed DB states during the migration period.


UI System

Base Colors UI

  • Window now operates in read-only mode by default

  • DB writes occur only through user actions (color pick/reset)

  • Refresh system added so swatches always reflect current DB state.


Configuration Window

Config UI improvements:

  • Dark UI theme with consistent backdrop handling

  • Safe backdrop system that works with both:

    • SetBackdrop

    • ApplyBackdrop

This prevents frame errors on modern clients.


Skin selector improvements

Skin picker popup now:

  • Handles long skin lists safely

  • Highlights current skin

  • Avoids UI taint from dropdown templates.


Font selector improvements

Font picker popup now:

  • Highlights active font

  • Displays font names instead of paths

  • Supports bundled and Blizzard fonts.


Mixins System

Safe font handling

Added protected font application:

 
SafeSetFont()
 

This prevents errors when:

  • font paths are invalid

  • fonts fail to load

  • DB contains broken values.

Fallback now safely uses:

 
STANDARD_TEXT_FONT
 

Secret value safety

Threat percentage handling now safely detects Blizzard's secret number values introduced in modern clients.

This prevents UI errors when threat values are obfuscated.


Rare detection improvements

Added dedicated rare detection helper:

 
IsRareUnit()
 

Supports:

 
rare
rareelite
 

Displays:

 
RARE
RARE+
 

above nameplates.


Visual System

Target scaling

Target plates now apply scale multiplier cleanly:

 
globalScale
targetScale
 

with correct arrow orientation support.


Neutral reaction color lock

Units with reaction 4 (neutral) now:

  • force neutral base color

  • ignore threat coloring

  • remain stable outside combat.


Threat display improvements

Threat percentage text now:

  • hides below configured threshold

  • uses dynamic color levels:

    • grey

    • yellow

    • red

  • safely handles secret values.


Safety Improvements

Tooltip scanning

Quest detection now uses:

 
C_TooltipInfo.GetUnit
 

with protected pattern matching.

Prevents tooltip parsing errors.


Health percent calculation

Health percentage now safely supports:

 
UnitHealthPercent()
 

with fallback to manual calculation.


Unit safety guards

Several functions now verify:

 
UnitExists()
UnitLevel()
UnitHealth()
 

before calculations to avoid nil errors during nameplate creation.


Code Stability Improvements

Added protections around:

  • font application

  • tooltip scanning

  • health calculations

  • threat percentage formatting

  • combat flash timers

These reduce common runtime errors during heavy nameplate updates.


What has NOT changed

The following systems remain unchanged:

  • threat logic

  • style resolver

  • instance logic

  • height system

  • skin textures

  • PvP module

  • scripts module

  • castbar module

  • specials module