# XD 28 new plugin APIs

**URL:** <https://forums.creativeclouddeveloper.com/t/xd-28-new-plugin-apis/1663>\
**Category:** UXP Plugin API\
**Tags:** new-release, announcements\
**Created:** [March 12, 2020, 3:18am UTC](https://forums.creativeclouddeveloper.com/t/xd-28-new-plugin-apis/1663 "2020-03-12T03:18:06Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![peterflynn](https://sea1.discourse-cdn.com/flex015/user_avatar/forums.creativeclouddeveloper.com/peterflynn/32/56_2.png) [@peterflynn](https://forums.creativeclouddeveloper.com/u/peterflynn)\
**Post date:** [March 12, 2020, 3:18am UTC](https://forums.creativeclouddeveloper.com/t/xd-28-new-plugin-apis/1663/1 "2020-03-12T03:18:06Z")

</div>

XD 28 adds a few small new APIs for plugins:

- New `SceneNode.BLEND_MODE_*` constants for use with the [`SceneNode.blendMode`](https://adobexdplatform.com/plugin-docs/reference/scenegraph.html#SceneNode-blendMode) property (which was introduced in XD 27).

- Quickly look up a scenenode by its GUID with `scenegraph.getNodeByGUID(guid)` – useful for persistently remembering a node across plugin operations and even across document open/closes.

- Easily check if a scenenode is currently in scope for editing with `selection.isInEditContext(node)` – useful if you want your plugin to traverse a whole subtree and edit as much of it as possible without risk of throwing an error.

Note: the new interaction types introduced in XD 28 (audio-file playback & “scroll to” actions) are not exposed to plugins yet. Several other interaction types already have the same caveat – see [interactions API documentation](https://adobexdplatform.com/plugin-docs/reference/interactions.html#module_interactions-allInteractions) for a complete list.

**Further reading**

- [Developer **changelog**](https://adobexdplatform.com/plugin-docs/changes.html#xd-release-28012-march-2020)
- [**Complete diff** of all API docs changes](https://github.com/AdobeXD/plugin-docs/commit/e5dd84fef743bb91b1ab53152968f90826a793c1)
- [More XD **new features for end users**](https://theblog.adobe.com/xd-march-2020-audio-prototyping-anchor-links-more)

As always – happy plugin building!

---

<div class="post-metadata">

**Author:** ![cpryland](https://sea1.discourse-cdn.com/flex015/user_avatar/forums.creativeclouddeveloper.com/cpryland/32/1172_2.png) [@cpryland](https://forums.creativeclouddeveloper.com/u/cpryland)\
**Post date:** [March 12, 2020, 4:58am UTC](https://forums.creativeclouddeveloper.com/t/xd-28-new-plugin-apis/1663/2 "2020-03-12T04:58:48Z")

</div>

All excellent and some of them even old requests–thanks!

Is `scenegraph.getNodeByGUID` really fast as in hash-table-ish fast?

---

<div class="post-metadata">

**Author:** ![peterflynn](https://sea1.discourse-cdn.com/flex015/user_avatar/forums.creativeclouddeveloper.com/peterflynn/32/56_2.png) [@peterflynn](https://forums.creativeclouddeveloper.com/u/peterflynn)\
**Post date:** [March 12, 2020, 5:38pm UTC](https://forums.creativeclouddeveloper.com/t/xd-28-new-plugin-apis/1663/3 "2020-03-12T17:38:00Z")

</div>

> Is `scenegraph.getNodeByGUID` really fast as in hash-table-ish fast?

Yep! It is _much_ faster than traversing the whole tree to search for the node matching that GUID, which was the only thing plugins could do before this.

---

<div class="post-metadata">

**Author:** ![hossamAbdelnaser](https://sea1.discourse-cdn.com/flex015/user_avatar/forums.creativeclouddeveloper.com/hossamabdelnaser/32/740_2.png) [@hossamAbdelnaser](https://forums.creativeclouddeveloper.com/u/hossamAbdelnaser)\
**Post date:** [March 12, 2020, 7:28pm UTC](https://forums.creativeclouddeveloper.com/t/xd-28-new-plugin-apis/1663/4 "2020-03-12T19:28:30Z")

</div>

`scenegraph.getNodeByGUID(guid)`

This is really useful

---

<div class="post-metadata">

**Author:** ![cpryland](https://sea1.discourse-cdn.com/flex015/user_avatar/forums.creativeclouddeveloper.com/cpryland/32/1172_2.png) [@cpryland](https://forums.creativeclouddeveloper.com/u/cpryland)\
**Post date:** [March 12, 2020, 7:38pm UTC](https://forums.creativeclouddeveloper.com/t/xd-28-new-plugin-apis/1663/5 "2020-03-12T19:38:45Z")

</div>

Yes, it’s deadly useful for building data structures outside the scenegraph that need to reference nodes without using real object references.
