Tooltips
Discord
  • Tooltips
  • Start here
  • Support
  • Plugin
    • Features
    • Commands
    • FAQ
    • Guides
      • Clearing cache
      • Furniture shop
      • BetonQuest Dialogue
      • Languages
      • Manual width
  • Configuration
    • Theme
      • Theme textures
      • Making a custom theme
    • Icon
    • Preset
      • Conditions
      • Condition list
      • Show
      • Actions
        • Commands
      • Functions
      • Animations
      • Argument Types
  • Extra
    • Notable 2.0 Changes
    • Integrations
    • Variables
    • API
      • Custom Conditions
Powered by GitBook
On this page
  • Introduction
  • Structure
  • Outcomes
  • Supported outcomes
  • Examples
  • Context
  • Composite conditions
  • Supported operators
  • Examples
  1. Configuration
  2. Preset

Conditions

Display tooltips based on conditions

PreviousPresetNextCondition list

Last updated 5 months ago

Introduction

Conditions are defined per and allow to control when a preset is displayed to the player. For a preset to be shown, all of its conditions must be evaluated to true.

conditions:
# If players game mode is either creative or survival
- gamemode {gm=creative, survival} true
# If the player is looking at a grass block
- lookingatblock {type=grass_block}

When conditions are checked, they are checked line by line. The above example would first check if the players gamemode is either creative or survival after which it would check if the player is also looking at a grass block.

Structure

The structure of a singular condition is really simple. It consists of just two parts; the conditions name and its possible arguments inside of curly brackets ( {} ):

condition_name { key: value ; key: value }

All argument types are covered here:

If a condition does not have any required arguments, it can be defined without the curly brackets like so:

conditions:
- night
- day

All conditions are covered here:

Outcomes

An important part of optimizing conditions, is the ability to stop reading conditions early if some condition is false. For example, all operations that start with "lookingat" are expensive to perform, so it's imperative that they aren't checked often. This can be done using outcomes.

Outcomes are optional and defined at the end of a full condition like so:

- <condition> (outcome)

Supported outcomes

Outcome
Description

required (or true)

The current line must be true. If it isn't, further conditions won't be checked.

cancel (or false)

If the current line is true, further conditions won't be checked.

skip

Skips the condition (does not check it), but still writes context

Examples

If we wanted to check if player is looking at furniture inside of a WorldGuard region called "shop", we'd put the region condition first and give it the "required" outcome:

conditions:
# If players region is "shop"
- region { r = shop } required
# If player is looking at any type of furniture
- lookingatfurniture required

This way, the region condition will be performed first and only when it is true, will the "lookingatfurniture" run.

Context

Conditions only return context if they are true or if the outcome is marked as "skip".

Composite conditions

Composite conditions allow you to do more complex logical checks in a single line using operators.

Supported operators

Operator
Description

AND ( also && )

Left and right part must both be true

OR ( also || )

Left or right part must be true

Examples

conditions:
# If the region is shop AND players gamemode is creative
- region { r = shop } AND gamemode { gm = creative } true
# If player is looking at any type of furniture or at any type of entity
- lookingatfurniture || lookingatentity

Even more extreme example, when operators are combined with parenthesis:

conditions:
# (If the region is shop) AND ( (player is either looking at a coach) OR (is in creative) )
- ( region {r = shop } ) AND (lookingatfurniture { id = coach } OR gamemode { gm = creative } )

Many conditions return context, which contains useful information about the target. For example, a time condition may return the current time in ticks or lookingatfurniture condition may return the name of the furniture. The context returned by conditions is documented in the .

Context can be used with the function.

preset
Argument Types
Condition list
condition list
$context(key)