Added language.FormatPhrase
* Helper function, to replace language.GetString():format()
Add localization string for "Skin 0", etc (properties sub menu)
Fixed DPanelSelect running convars too much on creation
* When creating a bunch of icons (player model selector), it would run the convars for selected item for each item added. Now only runs the convars when the selection actually changes.
Added right click menu with reset option to DColorCube
Fixed DColorMixer:GetVector being always 1 change behind
* This changes GetColor in DColorMixer:ValueChanged to be the new value, not the old value. This fixes player model selector color selector always being one "change tick" behind, so color resets were not really applying correctly
Added ability to localize player model names, and categorize them
* Data only
* Added player_manager.GetAllPlayerModels() that includes categories/nice names
* Added 2 new arguments to AddValidModel - nice name and category
Minor derma cleanups
Make DColorMixer palette centered and attempt to size it correctly
* Size to fit all palette items into exact number of rows
* Added DColorMixer:SetPaletteName
Make DHorizontalDivider work with percentages
* This helps when resizing panels, and when screen resolution changes between game sessions
Fixed DPanelList ownLine handling
Overhauled the default Player Model Selector
* Take more of the screen by default
* Improve model rendering to not have overblown phong effect
* Display player model categories
* Can now resize model and model selectors via a divider
* Can reset player/weapon colors to default, and added palettes so you can store custom color presets (separate from all other palettes)
* Preview: https://files.facepunch.com/rubat/2026/August14-3121-LightslategrayIrishsetter.png
Update player model spawnicons
* To get rid of the plastic phong sheen