# How to compute uniqueId?

**URL:** <https://forum.juce.com/t/how-to-compute-uniqueid/69379>\
**Category:** Audio Plugins\
**Created:** [August 28, 2026, 7:12am UTC](https://forum.juce.com/t/how-to-compute-uniqueid/69379 "2026-08-28T07:12:36Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![pk-1](https://avatars.discourse-cdn.com/v4/letter/p/3da27b/32.png) [@pk-1](https://forum.juce.com/u/pk-1)\
**Post date:** [August 28, 2026, 7:12am UTC](https://forum.juce.com/t/how-to-compute-uniqueid/69379/1 "2026-08-28T07:12:36Z")

</div>

Dear community,

I hope this is not a stupid question, but I couldn’t find it in the documentation: How does Juce compute a VST3 plugin’s uniqueId from the classId?

It’s said to be some sort of hash, but how exactly?

My use case is that I want to match the classId found in a .vstpreset file to the associated plugin as defined by Juce’s PluginDescription.

---

<div class="post-metadata">

**Author:** ![reuk](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.juce.com/reuk/32/21494_2.png) [@reuk](https://forum.juce.com/u/reuk)\
**Post date:** [August 28, 2026, 8:57am UTC](https://forum.juce.com/t/how-to-compute-uniqueid/69379/2 "2026-08-28T08:57:31Z")

</div>

In juce\_VST3PluginFormatImpl.h we have:

```auto
description.uniqueId = getHashForRange (getNormalisedTUID (uid->data()));

```

The definitions of getHashForRange() and getNormalisedTUID are in the same file.

---

<div class="post-metadata">

**Author:** ![pk-1](https://avatars.discourse-cdn.com/v4/letter/p/3da27b/32.png) [@pk-1](https://forum.juce.com/u/pk-1)\
**Post date:** [August 28, 2026, 10:07am UTC](https://forum.juce.com/t/how-to-compute-uniqueid/69379/3 "2026-08-28T10:07:46Z")

</div>

> [@reuk](#):
>
> `description.uniqueId`

Fantastic! Thanks a million Reuben for the swift and concise answer. This is exactly what I was looking for.
