Hello and welcome to the articy:draft X Basics tutorial series. In this lesson we take a look at Search and Conflict Search, which are part of articy’s checkup tools.

Please accept marketing cookies to watch this video.

Search

When clicking the Search tab (1) in the Navigator, the normal project tree is replaced by the search criteria form (2) and the result list (3).

Accessing the Search in articy:draft

Setting up a search is very easy. First, specify if you want to search in the name field (1), the description field (2), or in any text field of articy objects (3).

Search parameters

Next, enter the search text (1). All objects that contain this text somewhere in the chosen field or fields are added to the result list. Now you can decide if you want to search all project languages or a specific one (2).

Search parameters

You can also decide if you want the search to consider capitalization by checking or unchecking Case sensitive (1). Then decide if you want to search in your entire articy:draft project or if you want to restrict the search to certain parts (2). For example, in this case, the search would be limited to the Entities folder.

Search parameters

The result list (1) shows all hits for the search. If you search All languages or the Primary language, results will be shown as usual like when the object gets selected in the Navigator (2).

Search result

If you search for a specific secondary language (1), results will be shown in the Localization View (2), when selected.

Search result

Query Search

You probably already noticed the fourth option in the Find objects drop-down list – Search by Query.

Query search

It is an advanced search, that uses the articy:draft query language to search for objects by your own criteria. For example you could search for objects with a specific template. Template(anyof, Weapons, Character) (1) – this would find all objects that have the template Character (2) or Weapons (3).

Query search for specific templates

Or you could search for a specific property value. CharacterInfo.PlayableCharacter == true (1) would list all objects with the feature CharacterInfo (2) that are flagged as playable characters (3).

Query search for specific property

It might look a bit complex at first glance, as the articy query language is structured close to SQL , but it basically allows you to search up anything in your project you could think of. You can find a link to the complete documentation of the query language here.

Conflict Search

Besides the normal search function the navigator also provides a tab that is dedicated to searching conflicts inside the project.

Click on the conflicts tab (1) in the navigator. The normal project tree is replaced by the conflict search criteria form (2) and the result list (3).

Conflict Search

If you want, you can narrow down the search by specifying the type of conflict you want to look for. In details these are:

Invalid property values (1)
For a lot of property types you can set up constraints, like min or max values for numbers, or length constraints for text fields. However, this does not prevent users from entering invalid values. These values will be highlighted when looking at the respective object or in the Conflict Search if we check invalid property values.

Duplicate technical names (2)
All articy:draft objects can be assigned a technical name. Every technical name should be used only once throughout the entire project. When checking Duplicate technical names, the Conflict Search lists all objects that contain a technical name used more than once.

Script Errors (3)
Checks for script errors in pins and Condition or Instruction nodes. To check script properties within templates, Invalid property values needs to be active.

Invalid references (4)
These can occur if, for example, you set an Entity as a speaker for a Dialogue Fragment, and then someone deletes the Entity in question. In this case the reference, the speaker of the Dialogue Fragment, is not removed entirely, but set to an invalid state. If Invalid references is checked in the Conflict Search, all objects are listed, that reference such an already deleted articy object.

Defective assets (5)
Sometimes when importing assets, problems can occur when trying to access the specified files. Files might be locked, access rights may be insufficient, or files are unavailable for some reasons. These failed imports can be found by checking Defective assets.

Localization Errors (6)
Localization conflicts occur if a property has an entry in the primary language but is empty in a secondary language or if the primary language entry is empty and it is only filled for one or more secondary languages. If a field is empty for all languages, primary and secondary, it will not be flagged as a localization conflict! You can search for localization errors in all project languages or a specific secondary one.

Conflict Search parameters

The only thing I will leave out of the search are the localization errors, because there is still a lot to do here, and I know it would result in a lot of hits. Rest of the boxes I leave checked. Next we can decide the scope of the search. Here we can use the default setting as well, for searching the entire project. Click the “Search” button to start.
Let’s take a look at the results. They are grouped by articy sections, Flow, Entities, and so on.

Conflict Search

First thing we see is a script error in the Flow (1). It says “Assignments in conditions aren’t allowed”. Click the result to open it (2), so we can see in detail what went wrong here. Oh, okay, it is a condition, but instead of the relational operator double equal sign, I put just one equal sign, which is an assignment operator. A typo that can easily happen. Correct expression is GameState.isRenfieldDefeated == true

Script error

Next we have an invalid property value (1) in an item, namely the combat modifier. If we hover over the entry (2), we see what the issue is. We set a constraint for this value with a maximum of 10, but a slight slip of the finger had me enter 19 instead.

Exceeding constraints of property value

Then we have a duplicate technical name (1). I probably copied and pasted the item to create a slightly different version and forgot to adjust the technical name (2).

Duplicate technical name

If we click Search again, the issues we fixed disappear. They could have led to all sorts of unwanted behavior, but thanks to the Conflict Search we were able to weed them out before our data even made it into the engine.

Conflicts resolved

GO TO “ADVANCED CONFIGURATION” LESSON

Useful links:

Help Center: Search
Help Center: Conflict Search
Articy Query language documentation

Don’t have articy:draft X yet? Get the free version now!
Get articy:draft X FREE
*No Payment information required

Follow us on Twitter, Facebook and LinkedIn to keep yourself up to date and informed. To exchange ideas and interact with other articy:draft users, join our communities on reddit and discord.