# Next

# 1.2.7

- Dynamic mask layer edits did not survive token closure and reopen. @.quatar.

# 1.2.6

- Minimizing Tokenizer would leave some keys bound to Tokenizer and non-functional in Foundry. @flighttoarras
- Improve layer handling for movement. @raenirsalazar
- Add an option to copy current avatar pane to token and vice-versa. @raenirsalazar
- Add an option to copy a layer from token to avatar and vice-versa @raenirsalazar

# 1.2.5

- Save folders containing spaces no longer break saving. Paths chosen with the file picker were stored percent-encoded (`Assets/Character%20Tokens`) and rejected as non-existent on upload; they are now decoded when stored, and existing encoded settings are decoded on use.

# 1.2.4

- The Auto-Tokenize dialog now opens quickly on large compendiums. It previously loaded every actor document just to render the selection screen; it now uses the compendium index and only loads the single preview actor.
- Auto-Tokenize batch runs now load actor documents in chunks of 50 and release each chunk after processing, so compendiums with thousands of actors no longer risk a failed load or exhausting memory.
- `tokenizeBatch` API: new optional `progressOffset` and `progressTotal` options let callers processing a larger set in chunks report absolute progress. Existing calls are unaffected.

# 1.2.3

- Players without folder-creation permission no longer hit "folder does not exist" errors when the daily `tokenizer/_masks`/`tokenizer/_cache` folder has not been created yet.
- Upload folders (including today's and tomorrow's dated ones) are now pre-created when any user with upload permission connects and when a GM saves the module settings; if a dated folder is still missing, files fall back to the base folder with the date prefixed to the filename so bulk cleanup by date remains possible.

# 1.2.2

- Some internal code refactor
- You can now open the openEditorStandalone and pass in an existing layerstack.
- Improvements to ring shape layers. They now operate like frame/ring layers.

# 1.2.1

- Dynamic tokens saved within Tokenizer would no longer open as Dynamic Tokens when re-opened.

# 1.2.0

- A bug when using dynamic tokens would cause large amounts of data to be stored on the actors flag rather than uploaded. A cleanup script will run when the module is started to check your world actors, unlocked compendium actors, and scene tokens to clean them up. You can also trigger this function manually using `game.modules.get("tokenizer-2").api.cleanupActorFlags()`.

# 1.1.2

- Can now rotate anti-clockwise, if that's your jam.
- Some fixes to scroll bars resetting position after adjusting sliders.
- Dynamic ring mask is now a lot smoother. @cceras

# 1.1.1

- Adds built in support for listing the Token Frames modules frames in the frame browser. @volfied
- Some improvements and exposed mask generation settings.
- Adds an API for registering frames from other module s- DDB Importer will use this for frames from DDB.
- Animated frames can now be viewed in the frame/ring browser.

# 1.1.0

- New `Tokenizer2.openEditorStandalone(options)` API: open the editor without an existing actor (for character-creation flows like Hero Mancer). Returns the uploaded image paths, a prototype-token patch, and the layer stack via a Promise and optional `onComplete` callback.
- New `Tokenizer2.promptConfig(options)` API: show the same options dialog as the compendium auto-tokenizer and resolve with a config object (frame, mask, portrait fit, image source, wildcard mode, save folder) suitable for spreading into `tokenize()`. Designed for integrations like DDB Importer that prompt the user once and apply the same config to many actors.
- New `updateActor: false` option on `tokenize()`: upload the file but skip every actor mutation (`actor.update`, `actor.setFlag`, placed-token patch). The result now includes a `prototypeToken` dotted-key patch ready to merge into pre-creation actor-data via `foundry.utils.expandObject` - lets DDB Importer and similar flows embed the rendered token before calling `Actor.create()`.

# 1.0.11

- Portuguese (Brazil) translation by @kharmans
- Settings text not visible in light mode. @thetreat
- Save dialog now checks each row (token/avatar) by default when it is eligible to be saved. @et3rnus
- Undo now works while painting masks - each brush stroke can be undone - but only whilst the mask is in edit mode, once the mask edit is closed, the undo is lost. @et3rnus

# 1.0.10

- Quick Token "Build Token From Actor Avatar" now uses the in-editor avatar when it has unsaved edits, instead of the on-disk avatar file. @et3rnus
- Lasso tool now works at a much higher fidelity on large image layers.
- Lasso tool now allows selections to be inverted.
- You can now save custom persistent masks by right clicking on a mask layer.

# 1.0.9

- Pasting images was not working if not using a https connection or localhost. @et3rnus
- Setting to disable Sheet Header link injection. @dharkus5000
- Some corrections for auto scaling on PF2e tokens.

# 1.0.8

- If using a mouse on OSX zooming would only go in.

# 1.0.7

- None square images used as rings would stretch out auto masks to be square.
- Auto tokenize now takes a custom mask.
- You can create custom masks using the lasso tool.

# 1.0.6

- Fix Ctrl-z shortcut not working.

# 1.0.5

- Save dialog now offers customisation options @opius
- When working with painted masks caching could prevent masks updating correctly. @drenfrost @alediran @pensezbien

# 1.0.4

- Multiple mask layers could cause some mask edits not to save.
- Multiple painted masks on a layer would cancel each other out.
- Oversized tokens will only be created if the token extends outside the edge of the token boundry.

# 1.0.3

- Auto Tokenize feature improvements.
- Mass custom frame import tool.
- Setting to enable saving dynamic ring image to normal token field on save of dynamic tokens (off by default)
- Tokenize Compendium now honours the "use dynamic ring by default" setting instead of always baking the ring.
- Wildcard tokens would never open as dynamic tokens.

# 1.0.2

- Filepicker was not loading correctly on Forge and other custom FilePicker services.

# 1.0.1

- Delete tool would not always preserve changes when switching tools.

# 1.0.0

- Initial Release.
