# Notable 2.0 Changes

## 🔨 Breaking changes

### Change of ID format

The identifiers of all configured objects in Tooltips have been changed. Now the identifier includes the full path to the object. For example, this is what a preset ID would look like in a folder:

<mark style="color:blue;">`mypreset -> folder/file/mypreset`</mark>&#x20;

This will require modifification all theme ID in presets to match the new format.

### Local placeholders removed

Now instead of <mark style="color:blue;">`%furniture_id%`</mark>  and <mark style="color:blue;">`%var_key%`</mark>, use context & variable [Functions](#functions).

### Furnish no longer needed

Furnish was used to store price data about IDs, you can now do that using the [$data function](/tooltips/configuration/preset/functions.md#usddata-key).

### Hex codes broken

Now instead of hex color codes, the [MiniMessage format](#minimessage) is used, even in preset background colors.

## ✨ New

### Functions

Most important addition are furnitures. They allow to display advanced text and placeholders. Display static data from the preset file, context from conditions or conditional text. [Functions](/tooltips/configuration/preset/functions.md).

### Context

Now, conditions are able to provide context. Context is information about the things that a condition checks. For example, for a <mark style="color:blue;">`lookingatfurniture`</mark> condition, the context is the ID of the furniture. This can be accessed using [functions](#functions).

### Data

This allows to define custom data in a preset file, which can be accessed with the [data function](/tooltips/configuration/preset/functions.md#usddata-key). This data can be prices of items, names of NPCs or text lines. This is a very powerful feature, which replaces Furnish.

### MiniMessage

MiniMessage support, which allows for richer format in messages. However note that not all tags are included, since italic, bold and underline cannot be supported. [Learn more about the format](https://docs.advntr.dev/minimessage/format.html#minimessage-format).

### Animations

You can now animate text inside presets. It will only work if a preset is being shown using conditions. [Check out the animation types and format](/tooltips/configuration/preset/animations.md).

### Optimizations

Split the condition and tooltip threads. Now conditions are checked separately from sending the tooltips, which means that tooltips can be refreshed more often.

### Priorities

Presets used to be checked more or less randomly. Now you can define a presets priority. The preset with the highest priority will be shown first. They can be set for [presets](/tooltips/configuration/preset.md#properties) and for entire [preset file](/tooltips/configuration/preset.md#file-priority).

### Reshow

A [reshow property](/tooltips/configuration/preset.md#show-defines-how-this-preset-is-shown) in presets, which will redisplay the tooltip (fade in & fade out) if text changes.

### BetonQuest support

BetonQuest support, [documented here](/tooltips/extra/integrations.md#betonquest). Tutorial on how to use it here.

### Other

#### - Support for quotes in arguments

```javascript
test{arg="Longer string with spaces";  arg1="another arg"}
```

#### - Dynamic conditions

Conditions can be registered at runtime, anytime (API related)

#### - Specify custom icon width

Icons can now have a custom, user-provided width. Documented on [the icon page](/tooltips/configuration/icon.md).


---

# Agent Instructions: 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:

```
GET https://tooltips.gitbook.io/tooltips/extra/notable-2.0-changes.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
