> For the complete documentation index, see [llms.txt](https://help.craftsmanplus.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.craftsmanplus.com/home/release-notes/readme.md).

# Release Notes

{% updates format="full" %}
{% update date="2026-08-17" tags="new-release" %}

## **PLAY v5.3**

CUSTOM SHAPES. POWERED-UP CODE LAYERS. MORE PLAY.

<figure><img src="/files/J4JyNWQuLLV6cFxaafoa" alt=""><figcaption></figcaption></figure>

### New Features

***

### **Custom Shapes&#x20;*****Bring any shape into PLAY***

<figure><img src="/files/kCXT3gvIPDSx8Bh8J0sF" alt=""><figcaption></figcaption></figure>

Shape layers are no longer limited to rectangles and circles. You can now upload SVGs to the Asset Library as a new Shape asset type, and any SVG can be used as its own fully editable shape layer. When a shape is anything beyond the presets, the Shape dropdown displays "Custom," and you can switch back to a preset at any time.

Custom shapes support the same customization you already know. Edit the fill color and opacity right in the Properties panel, and shapes with multiple colors get a color selector for each fill, plus a new picker for stroke color. The Replace button now shows both images and SVGs from your Asset Library, so you can swap an image for a shape (or a shape for an image) whenever you like.

A few more details: the Asset Library gains a Shape filter under Asset Types, custom shapes work with Global Layers, and they appear in the assets panel like any other shape. If an uploaded SVG isn't compatible with customization, you'll see a compatibility notice in the Properties panel, but the shape still renders and exports correctly.

<a href="/spaces/ZBycFFNxrdS0X9OsGtmT/pages/NTiKbu4B7VoGZ2s3WlDn" class="button primary">Read the Shape Layer Documentation</a>

***

### **Code Layer Upgrades&#x20;*****Sound, physics, progression, and more***

<figure><img src="/files/TtJjKeiGgKOAPZossDLX" alt=""><figcaption></figcaption></figure>

The Code Layer picked up a major set of upgrades this release:

**Sound effects.** Code layers now have first-class audio support. When a code layer includes sound effects, a new Audio Module appears in its Properties panel. Open Audio Properties to swap, preview, or delete each sound and adjust its volume. Code layer audio also appears in the audio section of the assets panel, right alongside the rest of your project's sounds.

**2D physics engine.** Code layers now include a built-in 2D physics engine (matter.js), so falling objects, bouncing, stacking, and slingshot-style mechanics no longer require hand-written collision math. The physics API comes with full code editor support: autocompletion, a dedicated section in the API reference sidebar, and hover documentation. Physics is fully opt-in, so creatives that don't use it see no change in file size.

**Progression.** Code layers now use the same Variables and Triggers progression system introduced in v5.2. A new Progression section sits directly below the Code section in the Properties panel, where you can create variables, track them, and fire actions when they hit the conditions you set, exactly like game progression.

**Interactions at a glance.** Interactions configured inside a code layer are now visible outside the code editor. Any layer with a configured interaction shows a read-only Interaction section in its Properties panel with the gesture and action, so collaborators can see what's wired up without opening the code.

**Automatic engagement tracking.** Interactive code layers now feed the Analytics Dashboard automatically. Any layer with a configured interaction fires engagement events out of the box, so your code layer interactions show up in Total Engagements and Engagements by Layer with no extra setup.

<a href="/spaces/ZBycFFNxrdS0X9OsGtmT/pages/xAD6CiEc3gjdp7eApHLR" class="button primary">Read the Code Layer Documentation</a>

***

### **Effects&#x20;*****Non-destructive visual effects, right in the editor***

<figure><img src="/files/Byh1JClZxuwZO5nrjYtY" alt=""><figcaption></figcaption></figure>

Raising the visual fidelity of an asset used to mean baking the effect into your source art in Photoshop or After Effects and re-importing it for every tweak. Not anymore. A new Effects Section now sits in the layer Properties panel, just below Animations, and works exactly like the Interactions and Animations modules you already know: add an effect, pick its type, configure it inline, and remove it whenever you like. A single layer can hold multiple effects at once and everything renders in the exported playable exactly as it looks in the editor.

**Opacity** is the first effect to ship on the new system. Add it to a layer and set a value from 0 to 100%. **More effect types are coming soon!**

<a href="/spaces/ZBycFFNxrdS0X9OsGtmT/pages/zCuM8LsEtckuVyIhKMvj" class="button primary">Read the Effects Documentation</a>

***

### **Analytics Monitor&#x20;*****Watch your events fire in real time***

<figure><img src="/files/UDYFcPYyYyIhLVvjE9sJ" alt=""><figcaption></figcaption></figure>

You no longer need the browser's network panel to verify what a playable is tracking. A new Analytics Monitor button sits at the top right of both Preview Path view and Share Link view. Click it to open a panel showing running totals for Sessions, Total Engagements, and Total Captures, plus a live feed of every event as it fires, with friendly names like Engagement, Capture, Tracker Fired, Scene Started, and Finished. Event rows include helpful context such as the layer or scene that triggered them, and a reset button in the panel header clears everything for a fresh run.

<a href="/spaces/ZBycFFNxrdS0X9OsGtmT/pages/WHfIiaV3WWY0dPEal3mE" class="button primary">Read the Analytics Event Monitor Documentation</a>

***

### **Analytics Spreadsheet View & CSV Download&#x20;*****Day-by-day performance, ready for export***

<figure><img src="/files/gcdUkhx3I4iIecg6cwyQ" alt=""><figcaption></figcaption></figure>

A new Spreadsheet view in the analytics sidebar presents your creative's performance as a day-by-day table. Each day is its own row showing Total Sessions, Sessions Engaged, Total Engagements, and Sessions Captured, plus a column for every layer in the creative so you can compare how individual elements performed over time. The table supports sorting by any column, pagination, and a sticky header and date column, and it respects the date range and filters you've already selected. When you're ready to dig deeper, hit Download CSV to export the data for Excel or Google Sheets, clearly named with the project, variant, date range, and company.

<a href="/spaces/YsCUHima0FilwMqIJBnV/pages/xmVh3BMwLeEIJbov8o8o" class="button primary">Read the Analytics Export Documentation</a>

***

### **Redesigned Share Link Popup&#x20;*****Share settings***&#x20;

<figure><img src="/files/sqU7iKaeDzWPWoq9fQ6Y" alt=""><figcaption></figcaption></figure>

The Share Link popup has been rebuilt. Click the Share Link button in the toolbar (⌥⌘Q) to open the new draggable popup with your QR code up top and one-click Open URL and Copy URL actions, complete with a "Link copied" confirmation toast. Two share settings are now built right in: **Default Size** lets you choose which size the share link opens with, and **Lock Size** hides the size dropdown on the share link page entirely. Both previously existed only as hidden URL parameters you had to append by hand; now the popup builds the share URL for you. The same popup also comes to template preview sharing with QR code, Copy URL, and Open URL.

<a href="/spaces/ZBycFFNxrdS0X9OsGtmT/pages/m3PM6o7Xr1scsvua6Wum" class="button primary">Read the Share Link Documentation</a>

***

### **Export Updates&#x20;*****Cleaner names, organized packages, all variants at once***

<figure><img src="/files/SgM7XNuHCmPLT2RcofC4" alt=""><figcaption></figcaption></figure>

The export package is the final handoff to partners and clients, and it just got a lot more organized.

**A standardized naming convention.** Every exported file now follows a consistent format: `ExportPartner_ProjectName_VariantName_Date_CompanyName`. For example: `InMobi_Yahtzee_C03_ItemCatcherCardGame_V01_PlayNow_2025-06-01_Wildcards`. The convention applies to every file type a partner receives, so recipients can identify any file at a glance without opening it.

**A new package structure.** Exports now download as a single top-level zip (`Playables_Date.zip` or `Banners_Date.zip` for banner exports) containing one folder per export partner, with each partner's files inside in their required format. Every package also includes an instructions file linking to documentation, so whoever receives the export knows exactly what they're looking at.

**Include All Variants.** No more exporting variants one at a time. A new Include All Variants toggle at the bottom of the Export modal exports every variant of your project for each selected partner in a single go. The Export button count updates live so you always know exactly how many files you're about to generate: 3 partners with 3 variants gives you EXPORT (9).

<a href="/spaces/ZBycFFNxrdS0X9OsGtmT/pages/Eh0aqLiO7tK4Emk8csKT" class="button primary">Read the Export Documentation</a>

***

### **Timeline Enhancements&#x20;*****Precise timing, readable at a glance***

<figure><img src="/files/g589QxPXK1SMv2OCQ5Er" alt=""><figcaption></figcaption></figure>

The timeline is where all your scene and layer timing lives, and it's been rebuilt to make that timing easier to read and far more precise to control.

**A refreshed design.** The timeline bar, panel, and tracks have been brought in line with PLAY's current design. Every control now has a tooltip, playback controls stay available even while the timeline is collapsed, and all time values display as clean whole numbers, no more stray decimals. You can also zoom the timeline by holding CMD (Mac) or CTRL (Windows) and scrolling, or by pinching on a trackpad.

**A smarter scene track.** The scene track now matches the structure of your layer tracks, with timestamps and notch marks overlaid directly on it. Drag the end of the scene track to change your scene's duration right on the timeline, no trip to the properties panel required.

**Animation timing on every track.** Layer tracks now visualize animation timing: layers with idle animations show playback notches, and enter and exit animation durations render directly on the track, so you can read your scene's choreography at a glance.

**Precision dragging and snapping.** Dragging a track or adjusting its start or end time now moves in 0.05 second increments, roughly one frame at 30fps, with the start time, end time, and total duration displayed live as you drag. Layer tracks snap to each other and to the scene end, and holding CMD or CTRL disables snapping when you want full freedom. Adjusting a parent's timing updates its children live as you drag.

**Layers beyond the scene end.** Layer tracks can now be dragged past the end of the scene, with the out-of-bounds portion darkened so it's clear that content won't play. Playback still ends at the scene duration.

**On Finish control.** Every layer gets a dedicated On Finish dropdown, giving you control over exactly what happens when a layer reaches the end of the timeline.

<a href="/spaces/ZBycFFNxrdS0X9OsGtmT/pages/8I4AbrKZN6gBlaBfirzf" class="button primary">Read the Timeline Documentation</a>

***

<details>

<summary><strong>UI/UX IMPROVEMENTS</strong></summary>

* **Engagements by Layer.** The Analytics Dashboard now breaks down engagements layer by layer, so you can see exactly which elements of your creative are driving interaction.
* **Redesigned color selector.** The color picker has been redesigned across the editor for faster, clearer color selection.
* **Panels remember where you were.** The layers panel, Properties panel, and timeline now keep their state when you switch between layers or jump in and out of Pathview, so you land back exactly where you left off.
* **Jump to scenes from Pathview.** You can now jump directly to a scene preview by clicking on it in the pathview.
* **Collapse projects.** Project groups in the Project Listing can now be collapsed to keep large workspaces tidy.
* **Rename before duplicating.** Duplicating a project now opens a rename popup first, so copies get a proper name instead of defaulting to "Copy."
* **Keep uploading while you upload.** You can now drag additional assets into the Asset Library while an upload is already in progress.
* **Faster editor on large projects.** Projects with many layers now load and scroll noticeably faster in the editor.
* **Cleaner input fields.** Number inputs now only show decimal places when the value actually has them.
* **Updated timeline controls.** The timeline section received a set of visual and usability updates.
* **Skip Time action.** The Skip to Time action is now Skip Time, with Skip Back and Skip Forward options.
* **Call Number action.** A new Call Number action lets a tap open the phone dialer with your number, complete with analytics tracking.
* **Smarter text layer defaults.** New text layers now start at font size 40 and sensible widths for portrait and landscape, and the font size dropdown presets have been updated.
* **Navigate the Asset Library with Escape.** Press Escape to step back through folders and close the Asset Library.
* **Asset Library stays put.** After editing an asset, the library now stays in that asset's folder instead of jumping back to the root.
* **Audio popups open on jump.** Jumping to an audio asset from the assets panel now automatically opens its properties popup.
* **Search survives filtering.** Applying filters or sorting on the Project Listing no longer resets your active search.
* **Template preview asset types.** Template previews now include a section listing the asset types used.
* **Global layers stay global.** Pasting a global layer or scene across projects now keeps it global instead of adding it as a normal layer.
* **Global Layer Interactions auto-unsync.** Targeting a scene-local layer from a global layer interaction now automatically unsyncs that section.
* **Code layer errors point to the line.** Code validation errors now include line and location info instead of leaving you hunting.
* **Decimals in Progression.** Progression input fields now support decimal values.
* **Share link loading state.** The share link page has an improved loading state with better loader placement and disabled controls while it loads.
* **Clearer location search.** Dynamic location search entries now show hierarchy sublabels so similar-looking locations are easy to tell apart.
* **Consistent tab titles.** Browser tabs now follow a consistent "Page - CRAFTSMAN+" format.
* **Artboard Size popup.** The Custom Artboard Size popup is now simply Artboard Size, with an updated design.

</details>

<details>

<summary><strong>BUG FIXES</strong></summary>

* Fixed an issue where exporting to all partners at once failed for some playable projects.
* Fixed an issue where AppLovin rejected exported creatives.
* Fixed an issue where a scene transition to the next scene did not trigger on share links, even though it worked in the editor preview.
* Fixed an issue where video layers did not show the edit (pencil) icon in the Properties header.
* Fixed an issue where copying a layer replaced the text on your clipboard.
* Fixed an issue where Scene and Group layers expanded or collapsed when selected instead of only via the arrow.
* Fixed an issue where searching the Asset Library opened unrelated folders as nested.
* Fixed an issue where the Asset Library added every asset type as an Image layer.
* Fixed an issue where the CTA click popup did not truncate long URLs and did not always show iOS, Android, and Desktop options.
* Fixed an issue where custom 90° horizontal flip animations were missing in share links.
* Fixed an issue where the top logo and final CTA button were missing from exported HTML builds.
* Fixed an issue where dynamic content layers failed to initialize on project open, leaving text layers missing.
* Fixed an issue where switching variants showed a file size of 0.00MB until the page was reloaded.
* Fixed an issue where the loading screen did not sit above all UI and editor state did not reset when switching variants.
* Fixed an issue where iFrame components rendered visually offset from their bounding box.
* Fixed an issue where Progress Text and Progress Bar min and max values reset to 0 and 100 when changed.
* Fixed an issue where inputtable selectors turned orange while typing.
* Fixed an issue where duplicating a project did not make the duplicator the new creator.
* Fixed an issue where Pathview did not highlight the first scene, and did not return to it when preview restarted.
* Fixed an issue where Analytics Pathview connectors rendered tiny.
* Fixed an issue where the Creative Insights toggle was not working.
* Fixed an issue where rectangle corner rounding only updated after a resize instead of live.
* Fixed an issue where scenes could not be collapsed in the left panel on the PSD import page.
* *Release includes other minor bug fixes.*

</details>
{% endupdate %}

{% update date="2026-07-10" %}

## **PLAY v5.2**

NEW LAYERS. UPDATED PROGRESSION. MORE PLAY.

<figure><img src="/files/cipU7Ph3uBxirsXsr54F" alt=""><figcaption></figcaption></figure>

### **New Features**

***

### **Shape Layers** *Build with native shapes*

<figure><img src="/files/6p8c7I0l6aw4dIGM1M1Z" alt=""><figcaption></figcaption></figure>

You can now add circle and rectangle shapes directly to your creatives as their own layer type. Add a shape from the Add Layer menu or with the S hotkey, then choose your shape from the dropdown and customize its color, opacity, and corner roundness right in the Properties panel. Also, importing a PSD now brings shapes in as native shape layers rather than flattened images. You can also swap any shape out for an image (or an image for a shape) at any time.

<a href="/spaces/ZBycFFNxrdS0X9OsGtmT/pages/NTiKbu4B7VoGZ2s3WlDn" class="button primary">Read the Shape Layer Documentation</a>

***

### **Code Layer** *Write your own code, right in PLAY*

<figure><img src="/files/QxN3a3stmwAi72vmXV2K" alt=""><figcaption></figcaption></figure>

Custom code is now in PLAY! Add a code layer from the Add Layer menu or with the hotkey O, then open the built-in code editor to write your own interactive visuals directly in PLAY. The editor includes autocompletion and an API reference sidebar to help you as you build, and you can pull image, text, and shape layers into your code through the layer's own asset panel. This opens up complex, custom interactivity that wasn't possible to build by hand before.

And this is just the beginning. The code layer works hand in hand with our AI chatbot to unlock a whole new level of creative power in PLAY, with much more on the way soon!

<a href="/spaces/ZBycFFNxrdS0X9OsGtmT/pages/xAD6CiEc3gjdp7eApHLR" class="button primary">Read the Code Layer Documentation</a>

***

### **Progression Upgrades** *A flexible new progression system*

<figure><img src="/files/4XpkvMnr9mfaNooRwx7r" alt=""><figcaption></figcaption></figure>

Progression has been rebuilt from the ground up. The old three-tab Score, Moves, and Health setup is replaced by a flexible two-tab structure: a Variables tab and a Triggers tab. In the Variables tab you can create any number of custom variables, name them, and set their default values. In the Triggers tab you set up actions that fire based on those variables. Each trigger watches a variable for a condition you choose, whether it reaches a value, drops to a value, equals a value exactly, or hits a value at a set interval, and then fires any action when that condition is met. You could reward a player the moment Score reaches 100, or fire an action every 25 points!

The Update Progression action is more powerful too. Instead of a simple increment, you can now choose how a value changes (Increase by, Reduce by, Multiply by, Divide by, or Set to) and apply that operation to one variable or several at once in a single action. Progress Text and Progress Bar also gain Min and Max input fields.

The same system now extends to games with a redesigned Game Progression section built on the same Variables and Triggers structure, so game-level progression works just like the rest of your project. Every game mechanic comes with its own set of default variables out of the box, like a starting score and points per action, so scoring behaves sensibly the moment you drop a game in. You can adjust those default values to tune each game's scoring exactly how you want and build triggers on top of them.

Your existing projects are migrated automatically, with Score, Moves, and Health carried over as variables so nothing breaks.

***

### **A Brand New Look** *Refreshed visuals across the platform*

<figure><img src="/files/Xsi6wpu1l4X9snTMErFT" alt=""><figcaption></figcaption></figure>

CRAFTSMAN+ has a new look. The platform's primary color has shifted from purple to orange across the entire editor, from buttons and toggles to selected layers, tabs, on-canvas selection indicators, and analytics charts. Everything you already know is exactly where you left it, just dressed in the new brand.

***

### **Direct Upload to AppLovin** *Publish without leaving PLAY*

<figure><img src="/files/dTgl0TkrdPGvAQybe9kg" alt=""><figcaption></figcaption></figure>

You can now send a playable straight to AppLovin Axon from the Export modal. When you select AppLovin under the Export options, you'll see a choice between Download and Direct Upload. To use Direct Upload, add your AppLovin credentials once in the new Company Settings section, which you reach by clicking your profile and choosing Company Settings, then opening Partner Integrations. Once configured, your playable uploads directly to Axon as part of the export, no manual download and re-upload required.

<a href="/spaces/sLQLMtgPpY29DGQ5DyRG/pages/G7IaZoHN0NwZO3twYsDA" class="button primary">Read the AppLovin Documentation</a>

***

### **Video Upgrades** *More control over video layers*

<figure><img src="/files/q7HF5ql3TsObpJPOCWng" alt=""><figcaption></figcaption></figure>

Video layers picked up a large set of upgrades this release:

* A new autoplay toggle controls whether a video plays on its own.
* Playback options now include Stop and Loop.
* A new Playback action module lets you fire an action when a video finishes playing. How often it fires follows the playback type: once when set to stop or on every loop.
* Timeline notches show exactly when a video will stop, loop, or rewind, and the video track now stays unlocked so you can freely adjust its duration.
* An aspect ratio lock keeps videos in proportion when you resize them.
* You can now add video layers inside Carousel and Scrollable components.
* You can add more than one video to a single scene.
* You can now add videos to global layers
* When a video is the only one in a project, the scene duration now matches the video length automatically.

<a href="/spaces/ZBycFFNxrdS0X9OsGtmT/pages/HfC0zxy2rZp0DPDxfhsW" class="button primary">Read the Video Layer Documentation</a>

***

### **Sequence Upgrades** *More control over sequence layers*

<figure><img src="/files/pQg9znr9Ktaj2IfnAFlU" alt=""><figcaption></figcaption></figure>

Sequence layers got a matching set of upgrades:

* A new autoplay toggle controls whether a sequence starts on its own.
* A new Playback action module lets you fire an action when a sequence finishes playing. How often it fires follows the playback type: once when set to stop, on every loop, or on every rewind cycle.
* Timeline notches show when a sequence will stop, loop, or rewind, and the sequence track now stays unlocked for free timeline adjustment.
* Changing a sequence's FPS no longer stretches or shortens its track.

<a href="/spaces/ZBycFFNxrdS0X9OsGtmT/pages/zXI4HijG6jOlWLbIZvZU" class="button primary">Read the Sequence Layer Documentation</a>

***

<details>

<summary><strong>UI/UX IMPROVEMENTS</strong></summary>

* **On Finish actions for every layer.** Every layer now has an On Finish module in its timeline section. Open it and choose an action that fires the moment that layer reaches the end of the timeline, giving you finer control over what happens as your creative plays out. The module is off by default, so your existing layers behave exactly as they did until you set an action.
* **Redesigned move modal.** Moving projects and assets is clearer now. The modal opens wherever you currently are rather than at the root, keeps persistent breadcrumbs so you always know where items will land, lets you search across all folders at once, and includes a button to create a new folder without leaving the modal.
* **Updated Photoshop Import preview.** The import modal's viewport now uses the same dotted background and zoom controls as the rest of the editor, making it easier to position and inspect your imported layers.

</details>

<details>

<summary><strong>BUG FIXES</strong></summary>

* Fixed an issue where a video could autoplay even when its scene was not set to autoplay.
* Fixed an issue where on-finish rewind did not rewind game layers correctly in preview.
* Fixed an issue where the fallback layer did not display when the Fallback option was selected in preview, share links, and exports.
* Fixed an issue where progress text and progress bars did not update in preview when a component was tracking a game condition.
* Fixed an issue where images in the asset library appeared squished when a second orientation was added to a project.
* Fixed an issue where Japanese and Thai dynamic language text was not centered correctly.
* Fixed an issue where adding a sequence layer as a global layer selected the wrong scene's layer.
* Fixed an issue where sequence global layers could unsync and break exports.
* Fixed an issue where a sequence inside a component game would not restart when the scene was replayed from the timeline.
* Fixed an issue where a looping sequence in a banner stopped early in preview.
* Fixed an issue where a looping sequence with a Launch URL or App Store action opened the link multiple times.
* *Release includes other minor bug fixes.*

</details>
{% endupdate %}

{% update date="2026-06-08" tags="new-release" %}

## **PLAY v5.1**

DESIGN FASTER. UPLOAD SMARTER. MORE PLAY.

<figure><img src="/files/kIEBI6S3keeiMJQ9YIpY" alt=""><figcaption></figcaption></figure>

### **New Features**

***

### **Photoshop Import** *Bring your PSDs straight into PLAY.*

<figure><img src="/files/fiZXpDfGfUexg3PWaCf6" alt=""><figcaption></figcaption></figure>

Photoshop Import lets you bring a full PSD into your project in a single action, with every artboard becoming a scene and every layer landing in the editor ready to use. Open the Create Asset menu in the PLAY editor and select the new Import option to launch the Photoshop Import page.

**Here's how it works:**

* **Upload your PSD.** Click Upload PSD and choose a file. PLAY automatically parses your artboards and layers.
* **Review the import.** Once parsing is successful, you'll see thumbnails of every artboard alongside the full layer panel. Each layer gets a status icon: green for layers that imported cleanly, yellow for layers that imported but lost something along the way (an unsupported effect or missing font), and red for layers that couldn't be imported. Hover any icon to see exactly what happened.
* **Include or exclude artboards.** Click any artboard thumbnail to exclude it from the import.
* **Finish the import.** Click Import to bring everything into your project. The new scenes appear below your existing ones in the editor, ready to edit.

<a href="/spaces/ZBycFFNxrdS0X9OsGtmT/pages/9F1DW3pnwGNOZMkVdlJ4" class="button primary">Read the Photoshop Import Documentation</a>

***

### **A Redesigned Asset Upload Flow&#x20;*****Faster uploads with full visibility every step of the way***

<figure><img src="/files/qC8vasiRhTM3fuO0y9vh" alt=""><figcaption></figcaption></figure>

The Asset Library now has a fully redesigned upload experience built directly into the library itself, replacing the old upload window!

**Here's what's changed:**

* **Drag to upload.** Drag files from your desktop onto the asset grid in the Asset Library or onto the editor directly.
* **Pending upload review.** Before anything uploads, you'll see every file listed. Unsupported or corrupted files are flagged with a red warning and a tooltip explaining the issue. Remove anything you don't want, then hit Upload — any unsupported files are filtered out automatically.
* **Real-time upload progress.** The right panel shows per-file progress as uploads run. Files upload in parallel and you can keep working in the editor while uploads complete in the background.
* **Upload complete and failed states.** When the upload finishes, you'll see a clear summary showing how many files succeeded versus failed. Successful uploads appear pre-selected in the asset grid ready to use!

<a href="/spaces/sLQLMtgPpY29DGQ5DyRG/pages/W08lIgSN1WXd9B07bnxx" class="button primary">Read the Uploading Assets Documentation</a>

***

### **Keep Width & Keep Height Scaling&#x20;*****Two new options for responsive layer behavior***

<figure><img src="/files/yskzPHyT9utzKXcf5UFe" alt=""><figcaption></figcaption></figure>

Two new scaling modes have been added to the layer scaling menu. **Keep Width** locks a layer's width regardless of viewport size, with height adjusting proportionally to preserve aspect ratio. **Keep Height** does the reverse, locking height and adjusting width. These give you more precise control over how layers respond across screen sizes alongside the existing scaling modes.

<a href="/spaces/ZBycFFNxrdS0X9OsGtmT/pages/oUXgfoeNLPoajXfmCfdE" class="button primary">Read the Scaling Documentation</a>

***

### **Fire Tracker Action&#x20;*****Silently fire a tracker URL without interrupting the experience***

<figure><img src="/files/GEZQBGG3XktQOZsMxo6l" alt=""><figcaption></figcaption></figure>

Fire Tracker is a new action that silently fires a tracker URL in the background, with no new window opening and no interruption to the playable. You'll find Fire Tracker in any action dropdown — including Interactions, Video and Sequence On Finish, Game Finish Conditions, and Scene Events. Select it from the dropdown, enter your tracker URL, and the action will fire whenever it's triggered. Fire Tracker is also fully compatible with catalogue URLs.

<a href="/spaces/ZBycFFNxrdS0X9OsGtmT/pages/7Bdf8XCtIFMy1Vyn5Zd3" class="button primary">Read the Fire Tracker Documentation</a>

***

### **Exclude Scenes from BG Music and Global Timer&#x20;*****Granular control over which scenes opt out***

<figure><img src="/files/WYF2btvb1qXRxdGFg02J" alt=""><figcaption></figcaption></figure>

The "Play on End Cards" toggle has been replaced with a new Exclude Scenes dropdown in both the BG Music and Global Timer property popups, giving you scene-by-scene control instead of an all-or-nothing setting tied to End Cards. Open the dropdown to see every scene in your project with a checkbox, check any you want to exclude, and the BG Music or Global Timer will skip those scenes during export.

{% hint style="info" %}
***Note:** Existing projects that had "Play on End Cards" turned off are automatically migrated. Any scenes previously marked as an End Card are added to the Exclude Scenes dropdown, so your project behaves exactly the same after the upgrade.*
{% endhint %}

<a href="/spaces/ZBycFFNxrdS0X9OsGtmT/pages/G6bjc2V1CxihOfWGbhPl" class="button primary">Read the Background Music Documentation</a>

<a href="/spaces/ZBycFFNxrdS0X9OsGtmT/pages/1S9Tg9pH0B7ZjSIhTFD8" class="button primary">Read the Global Timer Documentation</a>

***

### **Independent Text Properties Per Orientation&#x20;*****Fine-tune text alignment and font size for each orientation independently***

<figure><img src="/files/g1EB0XGSs8rmuoajHUce" alt=""><figcaption></figcaption></figure>

Text alignment and font size can now be set independently for portrait and landscape on the same text layer. Adjust either property in one orientation and it stays put when you switch to the other, so you can fine-tune your text for each layout without overriding what you already set up.

<a href="/spaces/ZBycFFNxrdS0X9OsGtmT/pages/h51oML4yxkLe5EMshiUw" class="button primary">Read the Text Layer Documentation</a>

***

### **Paste Properties&#x20;*****Copy specific properties from one layer to another***

<figure><img src="/files/hC3G77q4iUENzqkeCXqh" alt=""><figcaption></figcaption></figure>

Paste Properties lets you copy a layer and apply just the properties you want to another layer, instead of pasting the whole thing. Copy a layer, select your target, and open the edit controls dropdown to find a new Paste Properties option with a sub-menu of property groups: **All Properties, Transform, Timeline, Interactions, Animation,** and **Dynamic**. If a target layer doesn't support a specific group, that option is disabled and a "Cannot Paste Properties" toast appears. Pasted properties overwrite the target layer's existing settings.

<a href="/spaces/ZBycFFNxrdS0X9OsGtmT/pages/VmOYt3umv8VLRshNb7iU" class="button primary">Read the Paste Properties Documentation</a>

***

<details>

<summary><strong>UI/UX IMPROVEMENTS</strong></summary>

* **Asset folder linking** The Asset Library now stays in context with the asset you're working on. Clicking replace opens the library directly to the asset's original folder, editing defaults the save location to that same folder, and after saving the library returns to where the asset lives instead of resetting to the root.
* **Choose between Original and Optimized assets** Selecting an asset in the Asset Library now shows Original and Optimized radio buttons with each version's format, dimensions, and file size, so you can pick the full-quality original or the web-optimized version when adding it as a layer. A new re-optimize button next to the Optimized row regenerates the optimized version at any time.
* **Pasting across projects** You can now copy layers, groups, and full setups from one project and paste them into another project open in a different tab. Copy/paste works between projects of the same type only (Interactive Ads to Interactive Ads, Banners to Banners).
* **Click through to layers beneath the bounding box** Clicking on a hotspot, group, or the transparent space of a text layer now passes the click through to whatever sits underneath, so you no longer have to deselect the top layer first.
* **Aspect ratio lock for video layers** Video layers now have an aspect ratio lock toggle in their properties panel, on by default. Resize with the corner handles to scale proportionally, or turn the lock off to resize freely.
* **Group layers unlocked by default** The aspect ratio lock on group layers is now off by default, making it easier to resize groups freely without first toggling the lock.
* **Global Timer module redesign** The Global Timer in the Settings Panel now follows the same module pattern as BG Music, with an on/off toggle and an expandable Timer Properties popup for duration, action, and exclude scenes.
* **Preview Press Effect in the viewport** Opening the Press Effect properties popup now applies the effect to your layer directly in the viewport, updating in real time as you adjust values.
* **Single Tap is the default gesture** New interactions added to a layer now default to Single Tap (matching the first-interaction behavior).
* **Volume slider for BG Music** The BG Music popup now includes a Volume slider that appears once you've assigned an audio file, giving you direct control over background music volume.
* **Project Listing sort settings persist** Your sort and ascending/descending preferences in the Project Listing now stay set when you navigate away and back.
* **Export rendering follows your orientation settings** Exports now render the correct orientation based on the Settings Panel configuration. Projects with both orientations enabled render each on the appropriate screen, and projects configured for only one orientation render that artboard on screens of the opposite orientation as well, masking anything beyond the base artboard size.
* **Updated Preview icon** The eye icon in the toolbar has been replaced with a play icon, making the preview action easier to identify at a glance.
* **Passwordless Platform Invites** The CRAFTSMAN+ new user invite email has been completely redesigned. It now features magic link sign in directly from the email.

</details>

<details>

<summary><strong>BUG FIXES</strong></summary>

* Fixed an issue where fonts uploaded in the editor did not immediately appear in the font selector, and where switching between variants of a project font did not always work correctly.
* Release includes other minor bug fixes.

</details>
{% endupdate %}

{% update date="2026-04-22" %}

## **PLAY v5**

A MORE MODERN EDITOR. MORE INTERACTION. MORE PLAY.

<figure><img src="/files/CjOKvUbWQEINHEW0xQtB" alt=""><figcaption></figcaption></figure>

### **New Features**

***

### **Modernized Editor** *A faster, smoother, and more intuitive creative workspace*

PLAY's editor has been completely modernized under the hood. Powered by WebGL, the viewport is now significantly faster and smoother across the board. While your workflow stays the same, you'll immediately notice the difference.

**Here's what's changed:**

* **Unified viewport.** Portrait and landscape artboards now live side by side in a single viewport — no more switching between two separate views.
* **Redesigned transform controls.** The bounding box and transform handles have been updated with a cleaner, more modern look. Side handles have been removed in favor of transforming layers directly from the edges. The dedicated rotation node is gone — you can now rotate any layer by hovering just outside a corner, similar to tools like Figma.
* **Updated cursors.** All viewport cursors have been refreshed to match the new transform behaviors, giving you clearer visual feedback as you move, resize, and rotate layers.
* **Smoother controls across the board.** Layer movement, resizing, and snapping all feel noticeably smoother thanks to the new rendering engine. Trackpad controls have also been improved — two-finger drag to pan, pinch to zoom, and all the expected gestures work as you'd expect.
* **Improved zoom.** Zoom now has proper limits (1% to 2000%) and artboard size labels are displayed directly on the viewport for quick reference.
* **Upgraded Component Rendering.** iFrame and Carousel components now render directly in the editor instead of appearing as grey placeholder boxes, so you can see your actual content while you build.

<a href="/spaces/ZBycFFNxrdS0X9OsGtmT/pages/i73g4LZQanoLj7XtSO18" class="button primary">Read the Viewport Documentation</a>

***

### **Press Effect** *Add visual feedback to any interactive layer*

<figure><img src="/files/VB3oUYrLG5ybaWiPAsLu" alt=""><figcaption></figcaption></figure>

Press Effect is a new interaction property that lets you control how a layer looks the moment a user taps or clicks it. Add a scale change, a color overlay, or both to give your interactive elements that polished, app-like feel. You'll find the Press Effect button in the Interactions section of any layer's Properties panel. Customize the scale (0–1000%), apply a color overlay with adjustable opacity, and use the Reset to Default button to quickly revert changes. Press Effect works on standard layers and component layers alike.

<a href="/spaces/ZBycFFNxrdS0X9OsGtmT/pages/hrxd8gWJSY8afETfwpam" class="button primary">Read the Press Effect Documentation</a><br>

***

### **Hold and Release** **Gesture** *One gesture, two actions*

<figure><img src="/files/Ydxba4oOTEscgOsmaFEF" alt=""><figcaption></figcaption></figure>

Hold and Release is a new gesture type that lets you trigger separate actions when a user presses down on a layer and when they let go. Set up a Hold Action and a Release Action independently — for example, play a video while the user holds and pause it when they release. You'll find Hold and Release in the Gesture dropdown within the Interactions section. We recommend adding instructional text like "Hold to Play" so users know the interaction is available.

<a href="/spaces/ZBycFFNxrdS0X9OsGtmT/pages/P88W7rWkiCKNBR34kvaq" class="button primary">Read the Hold & Release Documentation</a><br>

***

### **Anchor Points** *Fine-tune how layers respond across screen sizes*

<figure><img src="/files/Q1BM3V1SssOgdsMEKK5r" alt=""><figcaption></figcaption></figure>

Anchor Points set the reference point a layer uses for transform properties, pinning, and scaling across different devices. Found in the Responsive section of each layer, the dropdown offers nine positions (Top Left through Bottom Right) with Center as the default. Updating a pin will auto-update the Anchor Point to match, but changing the Anchor Point won't affect the pin, so existing workflows stay the same. ***Note:** Animations are not affected by Anchor Point and will continue to use center origin.*

<a href="/spaces/ZBycFFNxrdS0X9OsGtmT/pages/ffPFPrH89RjDzBOdlWnN" class="button primary">Read the Anchor Point Documentation</a>

***

### **Engine Compression** *Dramatically reduce your exported file size*

<figure><img src="/files/kJVGUEHLTvQOged9DiV1" alt=""><figcaption></figcaption></figure>

You can now compress your playable's engine at export time, saving approximately 400KB on most projects. In the Export modal, open Export Settings and toggle on **Engine Compression**. When enabled, any partner that exports as .html will include a compressed version of the rendering engine, resulting in significantly smaller file sizes without any changes to how your playable looks or performs. The toggle is off by default, giving you full control over when to use it.

***Note:*** *<mark style="color:$warning;">**Engine Compression is not supported on iOS 16.3 and earlier**</mark>. If your campaign targets older iOS devices, we recommend leaving this toggle off.*

***

#### **iFrame HTML & ZIP Upload** *Skip the hosting — upload HTML creatives directly*

<figure><img src="/files/yC1SLYBYOGD4wV0gzQUb" alt=""><figcaption></figcaption></figure>

The iFrame component now supports direct file uploads. In addition to URL and Embed Snippet, you can now choose **HTML** or **ZIP** from the Format dropdown to upload self-contained HTML5 creatives straight from your computer — no external hosting required.

Select **HTML** to upload a single `.html` file, or **ZIP** for multi-file projects with assets like CSS, JavaScript, and images (must include a root `index.html`). PLAY handles the upload, hosts the file on CDN, and loads it into the iFrame automatically.

This is especially useful for embedding third-party HTML5 creatives, mini-games, or rich media units that were previously a hassle to host separately before pasting a URL.

<a href="/spaces/ZBycFFNxrdS0X9OsGtmT/pages/AjvqqyvR1nAncv6vHR7o" class="button primary">Read the iFrame Documentation</a>

***

### **Bulk Adding** **Layers** *Import multiple images at once*

You can now select and add multiple image assets as new layers in a single action. When adding a new Image layer, the Asset Library now supports multi-select — choose your images, and each one is automatically created as its own layer in the order you selected them. This saves significant time when building out scenes with many visual elements. **This currently works for image layers only, videos will be coming soon.**

***

<details>

<summary><strong>UI/UX IMPROVEMENTS</strong></summary>

* **Updated default font** System fonts have been removed and replaced with a new default font from the Craftsman+ library, ensuring consistent text rendering across all devices and exports.
* **Smarter asset sizing** Imported assets now scale proportionally to the canvas rather than all appearing at the same default size. When you add an image, video, or sequence asset, PLAY treats the canvas as if the longer side is always 1024px and scales your asset relative to those dimensions. Images maintain their visual proportions relative to the canvas dimensions, so what you import looks closer to what you’d expect.
* **Dynamic Location radio buttons** Dynamic Location selections now use radio buttons per section, making it easier to configure and manage location-based content.
* **Faster Pathview loading** Pathview and preview screens now load significantly faster with improved caching and parallel processing. Subsequent visits are near-instant.
* **Help button removed** The "?" help button has been removed from the editor toolbar for a cleaner workspace. A new help system will be coming soon!

</details>

<details>

<summary><strong>BUG FIXES</strong></summary>

* Fixed an issue where the Match 3 game animation appeared choppy and played too fast in preview and export.
* Fixed an issue where the Item Slicer game displayed broken slice animations, with items duplicating and showing shadow-like artifacts.
* Fixed an issue where the share link would go to a black screen after interacting with a game.
* Fixed an issue where playables would crash mid-way through playing the Item Slicer game.
* Fixed an issue where the Wipe Away game's finish condition would not complete in landscape orientation after switching orientations mid-experience.
* Fixed an issue where obstacles and platforms barely spawned in the Platformer game when collectible density was set to ‘High’.
* Release includes other minor bug fixes.

</details>
{% endupdate %}
{% endupdates %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://help.craftsmanplus.com/home/release-notes/readme.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
