Skip to content

How search works

Type what you are looking for the way you would describe it to a teammate: “worn leather armchair”, “sci-fi corridor light”, “something to sit on”. Prophouse finds props that look like the description, even when no file name contains your words, and also props whose names and tags match your words. It combines both into a single ranked list.

The same search runs everywhere: the search box in the desktop app and web library, the catalog browser in the Unreal plugin, the REST API (GET /api/v1/entries?q=...) and the search_props tool for AI agents. Search is unlimited on every plan.

Every text search runs two searches at once.

Prophouse compares your words with what each prop looks like in its thumbnail. This is what lets “rusty barrel” find a prop named SM_Oil_Drums_NN_01b. A prop with no thumbnail cannot be matched this way; it is still found by name.

Prophouse also matches your words against each prop’s name, its pack name, its category, its tag names and the text of its comments.

  • Every word has to match somewhere for a keyword hit, in any order.
  • Words match as prefixes, so chair also finds chairs and chair_01, and lamp finds lamppost.
  • Put words in double quotes to match an exact phrase: "wooden crate" only matches those two words next to each other.
  • Punctuation and search operators are ignored, so you do not need to escape anything.

The two lists are merged with rank fusion: each prop scores by its position in each list, and a prop that ranks well in both rises to the top. A prop near the top of either list scores well, so a search works whether you type a file name or a description.

Ranked results include a score in the API and agent tools. It is a rank-fusion value used only for ordering: small numbers (the best possible is a little over 0.03), not a similarity percentage. Compare scores within one result list, never across searches.

Ranked results stop after 1,000 props. Page through them with the next_cursor the API returns.

Filters (pack, type, triangle count and the rest) narrow the candidates before ranking, so a restrictive filter never hides a good match that a broader search would have found. See Filters and sorting.

Texture and material thumbnails are flat images or shader balls, and they resemble almost any description. To keep them from crowding out the objects you asked for, the appearance match skips textures and materials unless your search is about a surface. A search counts as being about a surface when it contains one of these words:

texture, textured, material, surface, pattern, tile, tiling, tileable, seamless, decal, trim, trimsheet, albedo, basecolor, pbr, shader (and their plurals).

Filtering to the texture or material type has the same effect. So “rusty metal” returns rusty objects, while “rusty metal texture” or “rusty metal” with the texture type selected returns rusty surfaces.

Data maps such as normal, roughness, ORM or mask textures never match by appearance in a text search. Find them by name instead; see Tips for good searches.

Textures and materials always match by keywords, whatever you type.

If appearance matching is briefly unavailable, text search keeps working with keyword matching alone. Similar-prop search and search by image depend on it entirely, so they return an EMBEDDINGS_UNAVAILABLE error until it is back.