Plugin for Autodesk 3ds Max

Snap UV islands to the perfect trim, automatically.

HotspotUV matches every UV island to the best-fitting trim zone by shape, size and orientation — in one click, fully undoable. Lock a consistent texel density across the whole asset and stop fighting your trim sheets.

  • 3ds Max 2024+
  • One click · one undo
  • No extra installs
1 clickmaps a full selection of islands
1 undoreverts the whole operation
100%deterministic — same input, same result
0 installsruns on Max's bundled Python

Why HotspotUV

UV mapping is the most repetitive job in 3D production. It doesn't have to be.

Trim-sheet and hotspot texturing is fast — when the islands actually line up with the trims. Manually selecting, moving, rotating and scaling UV islands one by one, hundreds of times per asset, turns a simple adjustment into hours of work. HotspotUV does the lining up for you: select your islands, pick target zones on the visual map, and hit one button. The tool picks the right trim for every island, rotates and fits it, and keeps everything as a single undo step.

Key features

Everything you need for clean, consistent trim UVs

Aspect-aware matching

Every island snaps to the best-fitting trim zone by shape, size and orientation. Deterministic by default — same input, same result, every time.

Visual zone picker

Click, Ctrl-click or drag-select target zones directly on the trim map, with a live target count and background-image texture preview.

Texel density mode

Scale every island to one consistent texel density computed from its real 3D area. No more mixed resolutions across a panel.

Straighten on the fly

Auto-orient skewed islands to the UV axis before matching, using minimum-area rectangle fitting — even sub-degree corrections.

Smart fit control

Keep proportions perfectly uniform, or allow a controlled amount of stretch (0–100%) to fill the zone exactly as much as you want.

Variation, seeded

Optional random 180° rotation, mirror and pick among equal matches — seeded for repeatable results — to break up visible tiling.

World-size & per-zone options

Match zones by real-world size, tag zones into categories, and fine-tune per-zone inset and global padding.

One click, one undo

The whole hotspot operation — every island — reverts with a single Ctrl+Z. Experiment freely.

Flexible zone workflows

Load .json trim layouts, generate zones from your existing UV islands or from a grid, with a searchable zone list.

The control panel

Full control over every match

Great defaults out of the box — but every part is yours to tune. Here's the whole workflow — panel, menus and toolbars — in plain English.

Mapping

How each island lands in its trim.

Mode
Fit the island inside the trim (Hotspot), let it tile past the trim (Seamless U/V), or use each trim's own setting (From trim settings) to mix normal trims and seamless strips in one pass.
Random offset in trim
Seeded random placement instead of centering, so repeated islands don't line up.

Orientation

Rotate the island before it's matched.

Orient
As Is, Auto (longest side horizontal), Straighten skew to the UV axis, or Orient to World — the surface's world-up (Z) points up in UV, so walls stay vertical and upside-down islands are fixed.

Matching

Which trim an island wins.

Priority
Match by shape first, by size first, or by real-world area (texel density).
Area
Prefer the closest-sized zone, the largest, the smallest, or a manual scale factor.

Fine-tuning

Nudge and filter the match.

Manual scale
Zone-area multiplier when Area = Manual — above 1 picks bigger zones, below 1 smaller.
Aspect bias
Nudge matches toward wider (+) or narrower () zones.
Allow 90° rotation
Let an island turn 90° to fit a zone's orientation.
Detect radial
Round islands (caps, flanges) go only to trims tagged Radial; everything else avoids them.
Tag filter
Map only to trims carrying a chosen tag — e.g. send rivets to rivet strips.

Scale

How big the island gets in the trim.

Keep proportion
Lock proportions, or allow a controlled amount of stretch to fill the zone.
Max stretch %
How far an island may stretch to fill its zone (0 = none, 100 = full).
Texel density mode + Sample
Scale every island to one consistent texel density from its real 3D area. Sample reads the density off a selected island.
Density margin %
Snap to an exact trim fill when it costs only a little extra density — no sliver gaps.
Inset & Padding
Global padding, per-zone inset, or both combined.

Variation

Break up visible tiling — repeatably.

Randomize among equal matches
Pick randomly between zones that fit equally well.
Random 180° / mirror
Optional 180° rotation and U/V mirroring for variety.
Seed
Every random choice is seeded, so the same seed always gives the same result.

Place on click

Hands-on placement, one zone at a time.

Fit mode
Fill, Cover, Fit width or Fit height — how the island fills the zone you click.
How it works
Turn Select and Edit off, then click a zone on the map — the selected UVs drop straight into it.

Per-trim settings

Every zone can behave differently.

Edit Trim
Double-click a trim in the list or on the map to open it.
Fit axis
Give any trim its own behaviour — fit, fill-to-cover or seamless U/V — used by the From trim settings mode.
Tags
Comma-separated categories for the matching filters.
World W/H & Inset
Real-world size for texel density, plus per-zone padding.

Trimsheet & files

Load, save and reshape trim layouts.

New / Open / Save
Start fresh, load a .json layout, or save your sheet.
Import Trimsheet
Merge zones from another file into the current sheet.
Edit Trimsheet
Resize the sheet — the zones scale with it.

Map toolbar

Tools above the trim map.

Zoom Extents
Fit the whole layout in view.
Background
Drop a texture under the zones — from a file or straight off the selected object's material.
Hotspot Select Mode
Click zones on the map to choose targets (Ctrl/Shift to add, drag to box-select).
Edit toggle
Drag zones around the map to reposition them.

Trims toolbar

Tools for the zone list.

New / Duplicate / Delete
Manage zones in the list.
Generate from UVs
Build zones straight from your selected UV islands — the main way to create a sheet.
Generate Grid
Build a regular grid of zones.
Set / Remove Tags
Tag zones into categories in bulk.
Set Fit Axis
Set the per-trim fit axis on many zones at once.
Map UVs to Trims
Randomly drop the selected UVs into the selected zones.

Workflow

Four steps. Seconds, not hours.

  1. 01

    Load a trim layout

    Open a .json trim sheet, generate zones from your UV islands, or build them from a grid — with your texture as a background preview.

  2. 02

    Select your islands

    Add an Unwrap_UVW modifier, switch to Polygon mode and select the faces of the islands you want to map.

  3. 03

    Pick target zones

    Click or drag-select zones on the visual map — or leave the selection empty to target all enabled zones.

  4. 04

    Hit “Hotspot selected UVs”

    Every island snaps to its best-fitting trim, rotated and scaled. Don't like it? One Ctrl+Z and try different settings.

See it in action

Watch HotspotUV work

Built for production

Made during real environment production

Game & real-time artists

Texture large sets of modular assets with trim sheets and keep every UV layout clean, consistent and repeatable.

Flight-sim & environment artists

Born in MSFS scenery production, where hundreds of assets need fast, consistent UV mapping every day.

Archviz & large scenes

Reusable textures across big scenes without manual UV fiddling — spend less time fixing UVs, more time creating.

Pricing

One license. Everything included.

$15

Lifetime license · 1 year of updates included

Billed in your local currency at checkout

Get HotspotUV

Secure checkout · instant download

  • HotspotUV plugin — one-click .mzp installer (installs without a Max restart)
  • Sample trim layouts to get started immediately
  • Quick-start guide
  • 1 year of free updates included
  • Direct support from the developer

Requirements & install

Requirements

  • Autodesk 3ds Max 2024 or newer
  • Windows 64-bit
  • Uses the built-in Unwrap_UVW modifier
  • Runs on Max's bundled Python 3 — no extra installs

Install

Recommended — the .mzp installer (in your download):

  1. In 3ds Max: Scripting → Run Script… and pick HotspotUV_v1.2.0.mzp
  2. Confirm the dialog — HotspotUV installs and runs right away, no restart

Prefer not to click inside Max? Run the included install.bat, or copy the HotspotUV folder into %PROGRAMDATA%\Autodesk\ApplicationPlugins\ (all users) or %LOCALAPPDATA%\Autodesk\ApplicationPlugins\ (one user, no admin), then restart Max.

FAQ

Frequently asked questions

Which versions of 3ds Max are supported?

HotspotUV supports 3ds Max 2024 and newer on Windows 64-bit. It uses Max's bundled Python 3 and PySide, so there is nothing extra to install.

Does it modify my geometry?

No. HotspotUV works exclusively through the built-in Unwrap_UVW modifier — only your UV coordinates change, never the mesh itself.

Can I undo a hotspot operation?

Yes — the entire operation, across all mapped islands, is a single undo step. One Ctrl+Z brings everything back.

What trim layout formats does it use?

Layouts are saved as .json (with background image, per-zone inset and world-size data). You can also generate zones straight from your UV islands or from a grid.

Is the matching random?

By default it's fully deterministic — the same input always gives the same result, and islands round-trip back to their own trims. Randomized variation (rotation, mirroring, pick among equal matches) is opt-in and seeded, so even randomness is repeatable.

How does licensing work?

It's a lifetime license — the plugin is yours to keep forever — and the price includes one year of updates. After that year the plugin keeps working; you'd only renew if you want newer versions. One purchase, one user. Questions or issues — reach out and I'll help.

Release notes

What’s new in HotspotUV

Actively developed — every purchase includes a year of updates like these.

v1.2.0 5 Jul 2026 Latest
New
  • Per-trim “Fill (stretch to cover)” axis — in “From trim settings” mode, islands are stretched edge-to-edge to cover the trim exactly (padding respected), overriding Max stretch and texel density. Great for trims that must be covered precisely.
  • Set Fit Axis… — set the Fit axis of all selected trims at once (toolbar + right-click menu). Combine with per-trim Fill / Seamless strips and map a whole sheet in a single “From trim settings” pass.
  • Remove Tags… — bulk-remove tags from all selected trims (toolbar + right-click menu, case-insensitive).
  • Double-click to edit on the map — double-click a trim on the map to open Edit Trim… (Select and Edit modes), same as double-clicking it in the list.
  • Background “From Selected Object…” — pick the trim-sheet background straight from the textures the selected object’s materials reference, including materials that store textures as plain file paths (e.g. MSFS2024 materials) that Max itself doesn’t list.
  • Auto-filled texture list — the Edit UVWs texture list is filled from the selected object’s materials when HotspotUV opens, and the albedo is shown as the editor background — no more manual Pick Texture for Multi/Sub-Object or third-party material trees Max leaves empty.
Improved
  • Texel density + Max stretch % — with “Keep proportion” off, islands whose full-trim fit is within the Max stretch budget on both axes now snap to a full fit; others keep the exact density (centered, no distortion). Previously Max stretch was ignored in texel-density mode.
  • Smarter long-island matching — in “From trim settings” mode an island longer than a strip along its free axis is now a legal match (it tiles past the trim anyway), and the tightest strip that accepts it wins. Fixes long islands being rejected by every strip and landing in small trims at the wrong density.
v1.1.0 3 Jul 2026
New
  • Seamless mapping (U/V) — islands fit the trim’s constrained axis only, keep proportions and can tile past the zone; optional randomized offset along the free axis.
  • Per-trim Fit Axis + “From trim settings” mode — mix regular trims and seamless strips in a single pass.
  • Detect Radial — round islands are mapped only to trims tagged “Radial”.
  • Orient to World — orient islands by their 3D world direction (also fixes upside-down islands).
  • Random offset in classic Hotspot mode — seeded and repeatable.
  • Density margin % — snap to a full trim fit when the texel-density target is within the margin.
  • Multi-object hotspot — run on any number of selected objects at once, still a single Undo.
  • Trim numbering in reading order — top-to-bottom, left-to-right, plus a “Renumber Trims” action; zero-padded names sort correctly.
  • Remembers your last trim sheet — the last opened sheet is reloaded on startup.
  • Per-run summary — islands, matched/skipped and time in the MAXScript Listener.
Performance
  • Rewritten core pipeline — bulk UV read, in-memory affine transforms and batched writes: up to ~8× faster (e.g. ~1900 islands: 27.5 s → 3.3 s). Undo and your face selection are untouched.
Fixed
  • Texel density + Seamless now picks the strip by density and always fills the strip’s constrained axis.
  • Multi-object runs previously applied only to the first object.
  • Skipped islands (no matching trim) are no longer rotated by Auto-orient.
v1.0.0 30 Jun 2026
Release
  • Initial release.

Spend less time fixing UVs.
Spend more time creating.