metyatech Unreal Engine Plugins

Documentation for Unreal Engine plugins by metyatech

View the Project on GitHub metyatech/unreal-plugin-docs

Find in Materials

Search Materials, Material Functions, and Material Instances across open assets and project-owned content, then open matching assets and navigate directly to matching graph expressions.

Overview

Find in Materials is an editor plugin for searching Materials, Material Functions, and Material Instances without opening assets one by one. Unreal’s built-in Material Editor search is useful within the Material already open; Find in Materials searches across project-owned Materials, Material Functions, and Material Instances, or just currently open supported assets.

Search expression types and names, parameter names and values, texture and Material Function references, comments, and asset paths. Results are grouped by asset and show the matching expressions or overrides.

Requirements

Installation

  1. In Fab, install or add Find in Materials to the target Unreal project and engine version.
  2. If needed, enable Find in Materials from Edit > Plugins.
  3. Restart the Editor if requested.
  4. Open Tools > Find in Materials.

Quick Start

The Find in Materials Fab Additional File FindInMaterialsDemo_UE5.8.zip contains a known-data example project for Unreal Engine 5.8. The plugin supports Unreal Engine 5.6, 5.7, and 5.8; this demo project specifically uses 5.8.

  1. Make the Find in Materials plugin’s Unreal Engine 5.8 version available to a project.
  2. Extract FindInMaterialsDemo_UE5.8.zip from Fab’s Additional Files.
  3. Open FindInMaterialsDemo.uproject with Unreal Engine 5.8.
  4. If shaders or materials compile, wait for compilation to finish.
  5. Open Tools > Find in Materials.
  6. Set Scope to Entire Project.
  7. Search for comment:"surface roughness".
  8. Confirm M_SearchableSurface appears as a matching asset and its child match contains the comment match.
  9. Double-click that child match.
  10. Confirm the M_SearchableSurface Material Editor opens and the corresponding expression is focused and selected.

Expected result

M_SearchableSurface appears in the results with a child match for the surface roughness comment. Double-clicking the child opens the M_SearchableSurface Material Editor and focuses/selects the matching expression.

Manual verification without the demo project

Use this procedure when the Fab Additional File is unavailable. It creates a known Material in your own project:

  1. Create a Material named M_FIM_Verification under /Game/FIM_Verification.
  2. Open the Material and add one Scalar Parameter node.
  3. Set its Parameter Name to FIM_Verify_Param.
  4. Save the Material.
  5. Open Tools > Find in Materials.
  6. Set Scope to Entire Project.
  7. Enter parameter:FIM_Verify_Param and click Search.
  8. Confirm M_FIM_Verification appears as a matching asset and has one child match for FIM_Verify_Param.
  9. Double-click the child row. The Material Editor should open with that exact Scalar Parameter node focused and selected.

Search Scopes

Open Materials

Searches currently open Materials, Material Functions, and Material Instances in the Editor.

Entire Project

Searches project-owned content under /Game and content in enabled plugins loaded from the project that contain content. It intentionally excludes /Engine and Engine plugin content. “Entire Project” means project-owned content, not engine content.

Folder

Searches a folder under /Game or /Game/.... Enter a path or use Browse… to choose a Content Browser folder. Folder scope does not accept /Engine paths.

Query Syntax

Plain-text terms are case-insensitive substring matches. Multiple terms are combined with AND: every term must match. Use quotation marks to keep a phrase containing spaces together.

Filter Searches
type: Expression or match type
name: Node, display, or object name
parameter: Parameter name
value: Searchable, default, or reference value
texture: Texture references
function: Material Function references
comment: Node comments
path: Asset package path

These query examples are templates. Replace each uppercase placeholder with a name or value from your own project:

SEARCH_TEXT
texture:YOUR_TEXTURE_NAME
parameter:YOUR_PARAMETER_NAME
function:YOUR_MATERIAL_FUNCTION_NAME
comment:"YOUR_COMMENT_TEXT"
parameter:YOUR_PARAMETER_NAME texture:YOUR_TEXTURE_NAME
type:YOUR_EXPRESSION_TYPE
name:YOUR_NODE_OR_DISPLAY_NAME
value:YOUR_VALUE
path:/Game/YOUR_FOLDER

The combined template parameter:YOUR_PARAMETER_NAME texture:YOUR_TEXTURE_NAME returns matches that satisfy both filters. Replace both uppercase placeholders with values from your project.

What Is Searched

Results and Navigation

Results are grouped by asset; child rows represent individual matches. The footer reports the number of assets scanned, matching assets, and matches. Results and progress update as assets are processed.

Double-click a Material match to open the Material Editor and focus/select the exact matching expression. A Material Function match opens its editor and focuses/selects the matching expression. A Material Instance match opens the Material Instance Editor; it does not jump to a graph node because a Material Instance does not own an editable material graph expression.

If the matching expression cannot be resolved or focused, the asset may still open and the panel reports “Could not focus the matching node. The asset was opened.”

Select a Texture or Material Function in the Content Browser, right-click it, and choose Find Usages in Materials. For a Texture, the search uses its texture reference; for a Material Function, it uses its function reference. Find in Materials opens, switches to Entire Project, and immediately runs the corresponding texture: or function: query.

Performance and Search Behavior

Assets load asynchronously in bounded batches. Results and progress update incrementally, and you can cancel a search. Extracted metadata is cached for the current Editor session to speed up repeated searches; modifying relevant assets invalidates cached metadata. The first large Entire Project search may take longer while assets are loaded and metadata is collected.

Searching is read-only: it does not modify, dirty, or save assets. The session cache is not a persistent search index.

Safety and Privacy

Find in Materials performs a local, read-only search in the Unreal Editor. The plugin includes no telemetry, analytics, cloud service, custom networking, or AI API or functionality.

Limitations

Version 1.0.0 has these limits:

Troubleshooting

Find in Materials is not in the Tools menu

Check that the plugin is enabled under Edit > Plugins. Restart the Editor if it requested a restart.

Search returns no results

Verify the selected scope and query or filters. Entire Project searches project-owned content only. For Folder scope, check that the path is under /Game.

No searchable Materials, Material Functions, or Material Instances were found in the selected scope.

There are no supported assets in the selected scope. Create or add a Material, Material Function, or Material Instance there, or choose another scope.

Search completed with no matches. Check the scope or try a broader query.

The search completed successfully, but no searchable expression or value matched the query. Check the query and selected scope, or try a broader query.

Enter a search query.

Enter a query before starting a search.

Folder scope shows an error

Folder scope accepts only /Game or /Game/... paths. Use Browse… to choose a project content folder.

A result opens the asset but does not focus a node

Exact graph navigation applies to Material and Material Function expressions, and the matching expression must still resolve in the editor. The asset may open with a status message if it cannot be focused. Material Instance results behave differently by design; see Material Instance does not jump to a graph node.

Material Instance does not jump to a graph node

This is expected. A Material Instance opens in the MI Editor. Its overrides are searchable, but it does not own editable graph expressions.

Entire Project does not find an Engine Material

This is expected. Engine content and Engine plugin content are intentionally excluded.

The first project-wide search is slower

The first search loads assets and extracts metadata. Repeated searches may use the Editor-session cache. Progress is shown and the search can be cancelled.

Version History

1.0.0

Initial release with: