3D Controller Overlay + (3dco+ for short) has been released in version v1.3.0.
3dco+ is an overlay tool that shows controller, keyboard, and mouse input in real time as a customizable 3D model - handy for streamers and content creators who want to display their inputs without a handcam. Following version 1.2.0, this release adds PBR-style texture maps (Normal, Metallic, Roughness, and AO), global textures and materials at the model level, and a right-click menu in controller windows.
Also new: the shortcuts for Click-Through and Drag to Move can now be freely bound, models get a description field for credits and notes, and quitting with unsaved changes now shows a confirmation prompt.
3D Controller Overlay+ v1.3.0
✨ New features
- PBR-style texture maps – alongside the existing Diffuse/Specular/Emissive, a texture can now be a Normal Map (surface detail — bumps, grain, panel lines — without extra geometry), Metallic Map, Roughness Map, or AO Map. Not a full physically-based renderer bolted on, but a practical approximation layered onto the existing lighting model.
- Global textures & materials – set a texture (any type above) or a material (ambient/diffuse/specular/shininess/color) once at the model level instead of on every part. A part with its own texture of a given type, or its own custom material, always overrides the global one — global is purely a fallback for parts that don’t define their own.
- Right-click menu on controller windows – right-click anywhere on the model for Reset View, Enable/Disable Click-Through, and Enable/Disable Drag to Move, without digging into Settings.
- Fully configurable shortcuts – Click-Through and Drag-to-Move can each be bound to any keyboard key now, not a fixed short list. A single Enable Shortcut Monitoring toggle (off by default) turns this on for every window, on every platform.
- Model Description field – alongside the existing Source URL, for crediting a model’s contributors, leaving setup notes, or anything else worth keeping with it. Saves and loads with the model itself.
- Unsaved-changes confirmation – pressing Escape, closing a controller window, or using the tray icon’s Quit now checks for pending changes first and offers Quit Anyway / Cancel, instead of silently discarding an accidental close.
⚠️ Upgrading
- Existing models keep working as-is — a model saved before this release simply has no global texture or global material set, the same as any part that’s never had one customized.
- Back up your custom models and
settings.jsonfirst, as general precaution with any update.Full details in the README.md and INSTRUCTIONS.md

Source: GitHub