What is Incisor?
Tutorials
Key Concepts
Reddit
Stack Overflow
Configuration Settings
Deprecation Schedule

Deprecation Schedule

'convertToShape' is becoming 'shapify' within ncData
The system will automatically convert the 'convertToShape' bool within the ncData for assets to 'shapify' until phase2 deprecation. Just save the project to adopt the update.


Current State
Phase2: Fully Deprecated

'optimizationLevel' is becoming 'shapifyOptimizationLevel' within ncData
The system will automatically convert the 'optimizationLevel' bool within the ncData for assets to 'shapifyOptimizationLevel' until phase2 deprecation.Just save the project to adopt the update.


Current State
Phase2: Fully Deprecated

'edgeRange' is becoming 'shapifyEdgeRange' within ncData
The system will automatically convert the 'edgeRange' bool within the ncData for assets to 'shapifyEdgeRange' until phase2 deprecation. Just save the project to adopt the update.


Current State
Phase2: Fully Deprecated

'Shape' and 'shape' are becoming 'Shapify' and 'shapify'
The 'Shape' EffectNode and 'shape' EffectController are becoming 'Shapify' and 'shapify' respectively.


Current State
Phase2: Fully Deprecated

'Updater' and 'nc.updaters' are becoming 'AppEvent' and 'nc.appEvents'
The 'Updater' type and 'nc.updaters' property are becoming 'AppEvent' and 'nc.appEvents' respectively. It should be noted that the deprecated 'nc.updaters' will not work with minification.


Current State
Phase2: Fully Deprecated

'nc.getAllUpdaterRecipients' is becoming 'nc.getAllEventRecipients'
As part of the change from 'Updater' to 'Event', 'nc.getAllUpdaterRecipients' is deprecated. It should be noted that the deprecated 'nc.getAllUpdaterRecipients' will not work with minification.


Current State
Phase2: Fully Deprecated

The 'coreCanvasResolution' array in ProjectSettings is becoming two separate values 'coreCanvasResolutionX' and 'coreCanvasResolutionY'
By breaking these finite-length arrays into explicit components, auto-validation will become more robust and user clarity will be improved.


Current State
Phase2: Fully Deprecated

The 'pivotAdjustment_position' array in ncData is becoming separate values 'pivotPointOffsetX', 'pivotPointOffsetY', and 'pivotPointOffsetZ'
By breaking these finite-length arrays into explicit components, auto-validation will become more robust and user clarity will be improved. Just save the project to adopt the update.


Current State
Phase2: Fully Deprecated

The 'resolutionScaling' array in ncData is becoming separate values 'resolutionScaleX' and 'resolutionScaleY'
By breaking these finite-length arrays into explicit components, auto-validation will become more robust and user clarity will be improved. Just save the project to adopt the update.


Current State
Phase2: Fully Deprecated

The 'unitsPerPixel' array in ncData is becoming separate values 'unitsPerPixelX', 'unitsPerPixelY' and 'unitsPerPixeZ'
By breaking these finite-length arrays into explicit components, auto-validation will become more robust and user clarity will be improved. Just save the project to adopt the update.


Current State
Phase2: Fully Deprecated

The 'Inspector' suffix is being removed from the panel names.
The Object Inspector, Hierarchy Inspector, and Particle System Inspector, are all losing thier suffix.


Current State
Phase2: Fully Deprecated

A temporary check has been added to detect duplicate UIDs listed in construct files.
In certain situations in the Jan-Feb 2025 time range, using the 'duplicate' option in the Incisor GUI or even just using copy and paste within a construct hiearchy was resulting in duplicate UIDs within a construct. This check has been added to detect those duplicates and correct them.


Current State
Phase1: Detection and Correction Functionality in Effect

Phase 2 Target: 2025.06.01
Phase 3 Target: 2026.01.01

Graphic Expander Change: innerWidth and innerHeight are deprecated, and so are the expandableWidth and expandableHeight paremeters of the setup.
Originally expandableWidth, expandableHeight, innerWidth, and innerHeight were each allowed to be either numbers or arrays - this was too easily confusable. Now a 'symmetric' flag determines which mode the GraphicExpander is in, and there is an entirely different set of properties for each mode. In symmetric mode, there is expandableWidth, expandableHeight, expandedWidth, & expandedHeight. In non-symmetric mode, there is expandableAreaLeft, expandableAreaRight, expandableAreaTop, expandableAreaBottom, expandedAreaLeft, expandedAreaRight, expandedAreaTop, & expandedAreaBottom


Current State
Phase1: Previous Behavior Still Works With Warning

Phase 2 Target: 2025.06.01
Phase 3 Target: 2026.01.01

Timeline.autoplay and Timeline.initialTime have been explicitly added, and the Construct blueprint format has been updated appropriately
Constructs with timelines must be opened and saved before the phase 2 date for the implicit form of the functionality to be transfered into the Construct blueprint.


Current State
Phase1: Previous Behavior Still Works, and is Automatically Converted

Phase 2 Target: 2026.01.01
Phase 3 Target: 2026.01.01

CodeAsset file format change.
Previously, code asset files ended in '.codeAsset' and the content of the files was placed entirely within the code asset init scope. Now files end in '.codeAsset.js' and their contents is placed by default in the code asset class space, except for 'CODE.runBeforeInit' blocks, which are put into the init scope.


Current State
Phase1: '.codeAsset' files are detected and automatically converted to '.codeAsset.js' files, with the contents wrapped in 'CODE.runBeforeInit' blocks.

Phase 2 Target: 2025.06.01
Phase 3 Target: 2026.01.01

jsconfig.json update
Previously generated projects contain a jsconfig.json file that lists the 'Assets' directory as a directory to ignore. But this makes the autocomplete in '*.codeAsset.js' files not work. So a bit of code has been added to detect and fix this whenever a project is opened.


Current State
Phase1: jsconfig.json files will be automatically edited

Phase 2 Target: 2025.06.01

Timeline.playOnceAsEvent and Timeline.playOnceWithInfluence are being replaced with Timeline.playOnce_swoopInfluence
For clearer naming and better usability.


Current State
Phase1: Previous behavior still works, and is automatically converted in constructs

Phase 2 Target: 2025.09.01

Timeline.playWithInfluence is being replaced with Timeline.play_swoopInfluence
For clearer naming and better usability.


Current State
Phase1: Previous behavior still works, and is automatically converted in constructs

Phase 2 Target: 2025.09.01

Constructs without UID references are being deprecated.
For a time, Constructs used an 'objectAddress' array as a means of identification - this is being entirely replaced with the 'UID' system.


Current State
Phase1: Previous behavior still works, and is automatically converted in constructs. Just open a given Construct, make a change, and then save it to convert it.

Phase 2 Target: 2025.06.01

New API for masking Graphic Objects - 'GraphicObject.masking'
For GraphicObject, '.makeMasker', '.makeMasked', '.disableMasking', '.maskStatus', and '.maskList' are all being replaced by GraphicObject.masking


Current State
Phase1: Previous behavior still works with deprecation warnings, and the masking API will be automatically converted in Constructs, which must each be opened and saved in the inspector to commit the update.

Phase 2 Target: 2025.09.01

Particle System Random Distribution Type Support
ParticleSystem.radnomnessDistribution no longer supports anything but a numeric value.


Current State
Phase2: Fully Deprecated

PlaybackController.autoplay -> PlaybackController.autoplayWhenInConstruct
PlaybackController.autoplay is changing to PlaybackController.autoplayWhenInConstruct for clarity.


Current State
Phase1: Previous behavior still works with deprecation warnings - the flag in the construct file will remain 'autoplay'.

Phase 2 Target: 2025.09.01

nc.particleSystemDefinitions -> nc.particleSystemDefs
For consistency; definition dictionaries directly nc use the abbreviated 'Defs' to shorten the commonly used reference.


Current State
Phase1: Previous behavior still works with deprecation warnings.

Phase 2 Target: 2025.09.01

Updated Incisor Version Check moved to Standard 'SoftStatus' Update
There used to be a check built in to Incisor to see if there were newer versions of Incisor available. The check has been moved to the server; when a newer version is found, the server sends a message through the standard messaging apparatus. But the 'newnewestVersionOfCurrentSet' is still being sent in the SoftStatusUpdate for backwards compatibility. In the next phase, the newnewestVersionOfCurrentSet will be taken out of the SoftStatusUpdate.


Current State
Phase1: Both new and old functionality work.

Phase 2 Target: 2025.09.01

Internal Remote Extensions Cloud Location Has Changed
The original cloud location for Internal Remote Extensions has changed to include the VersionSet in its path. For now the old location is still being populated with remote extensions files. In the next phase, the old location will be removed.


Current State
Phase1: Both the old and new internal remote extensions locations work.

Phase 2 Target: 2025.09.01

AppEvent.addCallback has a 'callbackArgs' parameter between 'callbackName' and 'pauseImmunity'.
This change helps to entirely unify the internal callbacks system and will future-proof AppEvents.


Current State
Phase: Fully Deprecated