Skip to content

Navigation

23 tools. Back to the index.

add_eqs_generator

Destructive.

Adds a UEnvQueryGenerator subclass to a UEnvQuery option. If the option has no generator yet, this becomes it; otherwise replaces. option_index names an existing option, or equals the option count to append one new empty option; a negative option_index, or one past the option count, is an error checked before anything changes.

Parameter Type Required Description
query_path string yes /Game/... path to the UEnvQuery asset (required)
generator_class string yes Generator class name (e.g. "ActorsOfClass", "SimpleGrid", "PathingGrid") or full path (e.g. "/Script/AIModule.EnvQueryGenerator_ActorsOfClass")
option_index number no Optional option index to target (default 0); the current option count appends a new option, a larger index is refused

Returns: { query_path, option_index, generator_class, generator_name, replaced, saved }

add_eqs_option

Additive.

Appends a new empty option to a UEnvQuery and returns its index.

Parameter Type Required Description
query_path string yes /Game/... path to the UEnvQuery asset (required)

Returns: { query_path, option_index, option_count }

add_eqs_test

Additive, idempotent.

Add a test of test_class to an option of a UEnvQuery asset, after the option's existing tests. Idempotent per class: if the option already has a test of that class, that one is returned (already_existed=true) and nothing is added, so an option holds at most one test per class. option_index names an existing option, or equals the option count to append one new empty option; a negative option_index, or one past the option count, is an error checked before anything changes. Undoable as one editor transaction; marks the asset dirty without saving (save_asset). Valid classes: list_eqs_test_types; configure the test with set_eqs_test_scoring; remove_eqs_test is the inverse.

Parameter Type Required Description
query_path string yes /Game/... path to the UEnvQuery asset (required)
test_class string yes Test class name (e.g. "Distance", "Trace", "Pathfinding", "Dot") or full path
option_index number no Optional option index to target (default 0); the current option count appends a new option, a larger index is refused

Returns: { query_path, option_index, test_class, test_name, test_index, test_count, already_existed } — idempotent by test class within the option

create_eqs_query

Additive.

Creates and saves an empty Environment Query System (EQS) asset (UEnvQuery)

Parameter Type Required Description
name string yes Asset name for the new UEnvQuery
package_path string no Target content package path where the asset is created (default /Game/EQS)

Returns: { name, package_path, asset_path, asset_class, query_name, has_options, option_count, already_exists, saved, success, message }

diagnose_navmesh

Read-only.

One-call navmesh diagnosis: reports every ANavMeshBoundsVolume (brush validity + world extent — detects the EMPTY brush = 0 bounds that yields 0 tiles), inclusion/total nav bounds, bWholeWorldNavigable, invoker-only generation + registered invokers, the RecastNavMesh MaxTiles / built (active) tile count / RuntimeGeneration, and is_spatially_loaded per volume, plus an actionable diagnosis list. Read-only.

Parameter Type Required Description
world string no Optional world selector: absent/'editor' (default) | 'server' (the one you want in PIE: the navmesh is SERVER-AUTHORITATIVE, so only the authoritative world has a nav system and a RecastNavMesh) | 'pie' (ambiguous: PlayWorld, else the first PIE context -- may well land on the CLIENT) | 'client' | 'pie:N' | 'game' (alias of 'pie').

Returns: { world, has_authority, nav_system_present, whole_world_navigable, generate_only_around_invokers, supported_agent_count, nav_data_count, is_navigation_dirty, nav_bounds_volume_count, nav_bounds_volumes:[{actor_name, actor_label, is_spatially_loaded, brush_present, brush_empty, bounds_valid, bounds_extent:{x,y,z}, brush_poly_count, note}], registered_nav_bounds_count, total_nav_bounds:{valid, min:{x,y,z}, max:{x,y,z}, extent:{x,y,z}}, invoker_component_count, invoker_location_count, invoker_seed_bounds_count, recast_navmesh_present, recast:{name, runtime_generation, supports_runtime_generation, max_tiles, active_tile_count, tile_size_uu, is_spatially_loaded}, diagnosis:[string], success, world_name, world_package, world_type, net_mode, pie_instance }. On a CLIENT world (has_authority=false) the heuristics are suppressed and `diagnosis` says so first: a client with no nav system / no RecastNavMesh is EXPECTED, and rebuild_navigation is NEVER recommended from there.

diff_collision_channels

Read-only.

Aligns this project's custom collision channels with another project's config BY NAME and reports index shifts (which ECC_GameTraceChannelN slot / TraceTypeQueryN a same-named channel moved to). Diagnoses the migration hazard where custom channels don't travel and traces silently stop hitting. Reads the other project's DefaultEngine.ini straight from disk (not loaded). Read-only.

Parameter Type Required Description
other_project_config_dir string yes Path to the OTHER project's Config directory (containing DefaultEngine.ini); the project root also works (Config/DefaultEngine.ini is tried as a fallback)

Returns: { other_ini_path, other_ini_found, aligned_by, this_channel_count, other_channel_count, shifted_count, matched:[{name, is_trace_type, channel_this, channel_other, channel_shifted, query_this, query_other, query_shifted}], only_in_this:[{name, channel, query_type}], only_in_other:[{name, channel, query_type}], success }

dump_collision_channels

Read-only.

Dumps this project's custom collision channels (from config): each ECC_GameTraceChannelN / object channel -> friendly name, whether it's a trace or object channel, and its TraceTypeQueryN / ObjectTypeQueryN index (the value a raycast/overlap passes). Read-only. Read from GConfig [/Script/Engine.CollisionProfile] DefaultChannelResponses.

No parameters.

Returns: { source, builtin_trace_count, builtin_object_count, count, channels:[{channel, channel_value, name, is_trace_type, is_static_object, is_custom_game_slot, default_response, query_type, query_index, query_number}], success }

get_eqs_query_info

Read-only.

Reports the composition of a UEnvQuery asset: each option's generator class and its list of test classes. Read-only.

Parameter Type Required Description
query_path string yes /Game/... path to the UEnvQuery asset (required)

Returns: { query_path, option_count, options:[{index, generator_class?, generator_path?, test_count, tests:[{index, class, path}]}] }

get_navigation_info

Read-only.

Read the navigation system state of the editor world (never PIE): nav_system_present, nav_data_count, supported_agent_count with the agent names, and is_navigation_dirty. Read-only; a world without a navigation system reports zeros instead of an error.

No parameters.

Returns: { nav_system_present, nav_data_count, supported_agent_count, is_navigation_dirty, supported_agents, success }

get_recast_navmesh_settings

Read-only.

Reads the generation settings of the editor world's default ARecastNavMesh.

No parameters.

Returns: { recast_navmesh_present, navmesh_name, agent_radius, agent_height, agent_max_slope, agent_max_step_height, tile_size_uu, tile_size_uu_raw, cell_size, cell_height, merge_region_size, min_region_area, max_simplification_error, simplification_elevation_ratio, note, success }

list_eqs_context_types

Read-only.

Lists all concrete UEnvQueryContext subclasses usable as EQS contexts. Read-only reflection (GetDerivedClasses).

No parameters.

Returns: { base_class, count, types:[{name, path}] }

list_eqs_generator_types

Read-only.

Lists all concrete UEnvQueryGenerator subclasses usable as EQS generators. Read-only reflection (GetDerivedClasses).

No parameters.

Returns: { base_class, count, types:[{name, path}] }

list_eqs_test_types

Read-only.

Lists all concrete UEnvQueryTest subclasses usable as EQS tests. Read-only reflection (GetDerivedClasses).

No parameters.

Returns: { base_class, count, types:[{name, path}] }

rebuild_navigation

Destructive.

Triggers a navigation build on the editor world's navigation system

No parameters.

Returns: { rebuilt, nav_system_present, message, success, nav_data_count }

remove_eqs_generator

Destructive, idempotent.

Clears the generator on a query option. Idempotent (removed=false if the option had none).

Parameter Type Required Description
query_path string yes /Game/... path to the UEnvQuery asset (required)
option_index number no Option index (default 0)

Returns: { query_path, option_index, removed }

remove_eqs_option

Destructive.

Remove the option at option_index, with its generator and tests, from a UEnvQuery asset; later options shift down one index. Marks the asset dirty without saving (use save_asset); an out-of-range index is an error, not a no-op. Returns removed and option_count.

Parameter Type Required Description
query_path string yes /Game/... path to the UEnvQuery asset (required)
option_index number yes Index of the option to remove (required)

Returns: { query_path, option_index, removed, option_count }

remove_eqs_test

Destructive.

Remove the test at test_index from one option of a UEnvQuery asset; later tests shift down one index. Marks the asset dirty without saving (use save_asset); an out-of-range option or test index is an error, not a no-op. Returns removed and test_count.

Parameter Type Required Description
query_path string yes /Game/... path to the UEnvQuery asset (required)
test_index number yes Index of the test to remove within the option (required)
option_index number no 0-based index of the query option that holds the test (default 0).

Returns: { query_path, option_index, test_index, removed, test_count }

run_eqs_query

Destructive.

Runs a UEnvQuery synchronously against the editor world (UEnvQueryManager::RunInstantQuery) and returns the scored items. Generators/tests needing navigation data (SimpleGrid/PathingGrid/Pathfinding/Project/Trace) require a built navmesh; without it the query returns a non-Success status honestly (still success:true, ran:true).

Parameter Type Required Description
query_path string yes /Game/... path to the UEnvQuery asset (required)
querier_actor string no Optional actor display label or name used as the query Querier (drives contexts like EnvQueryContext_Querier); default: the query asset (no location)
run_mode string no "SingleResult" | "RandomBest5Pct" | "RandomBest25Pct" | "AllMatching" (default "AllMatching")
max_items number no Optional cap on how many items are serialized into the payload (default 50; the query still evaluates all)

Returns: { query_path, ran, eqs_manager_present, status, is_successful, num_items, item_type, run_mode, items:[{index, score, location:{x,y,z}, actor?}], note? }

set_eqs_generator_properties

Destructive, idempotent.

Sets properties on an option's generator by reflection (mcp_common::SetObjectProperty). Class-ref props (SearchedActorClass, SearchCenter) take a class path string; FAIDataProvider*Value props (SearchRadius, GenerateOnlyActorsInRadius) take an object like {"DefaultValue": <n>}.

Parameter Type Required Description
query_path string yes /Game/... path to the UEnvQuery asset (required)
properties object yes JSON object { PropertyName: value, ... } applied to the generator
option_index number no Option index whose generator is edited (default 0)

Returns: { query_path, option_index, generator_class, set:[name], failed:[{name, error}], applied:{name: stored_value_text} }

set_eqs_test_scoring

Destructive, idempotent.

Sets scoring/filter parameters on a test within a query option and PERSISTS them on the asset (TestPurpose, FilterType, ScoringEquation, ScoringFactor, FloatValue bounds are all real UEnvQueryTest UPROPERTYs). The response reports the values read back from the test object.

Parameter Type Required Description
query_path string yes /Game/... path to the UEnvQuery asset (required)
option_index number no Option index (default 0)
test_index number no Test index within the option (default 0)
test_purpose string no "Filter" | "Score" | "FilterAndScore" (default "Score")
filter_type string no "Minimum" | "Maximum" | "Range" | "Match" (default "Range")
scoring_equation string no "Linear" | "Square" | "InverseLinear" | "SquareRoot" | "Constant" (default "Linear")
scoring_factor number no Optional weight multiplier applied after the equation (ScoringFactor.DefaultValue); only applied when provided
float_value_min number no Optional min for FloatValueMin (default 0)
float_value_max number no Optional max for FloatValueMax (default 1)

Returns: { query_path, option_index, test_index, test_name, test_purpose, filter_type, scoring_equation, scoring_factor, float_value_min, float_value_max }

set_recast_navmesh_settings

Destructive, idempotent.

Configures generation settings on the editor world's default ARecastNavMesh (partial/idempotent; only provided params are applied and all numeric values are clamped server-side first).

Parameter Type Required Description
agent_radius number no Optional float; ARecastNavMesh::AgentRadius (>= 0)
agent_height number no Optional float; ARecastNavMesh::AgentHeight (>= 0)
agent_max_slope number no Optional float degrees; ARecastNavMesh::AgentMaxSlope (clamped to <= 89)
agent_max_step_height number no Optional float; SetAgentMaxStepHeight(Default, v) (>= 0)
tile_size_uu number no Optional float; ARecastNavMesh::TileSizeUU (clamped to >= 300)
cell_size number no Optional float; SetCellSize(Default, v) (clamped 1..1024)
cell_height number no Optional float; SetCellHeight(Default, v) (clamped 1..1024)
merge_region_size number no Optional float; ARecastNavMesh::MergeRegionSize (>= 0)
min_region_area number no Optional float; ARecastNavMesh::MinRegionArea (>= 0)
max_simplification_error number no Optional float; ARecastNavMesh::MaxSimplificationError (>= 0)
simplification_elevation_ratio number no Optional float; ARecastNavMesh::SimplificationElevationRatio (>= 0)
rebuild boolean no Optional bool (default false); when true, calls UNavigationSystemV1::Build() synchronously to apply

Returns: { recast_navmesh_present, navmesh_name, applied:{field:value}, requires_rebuild, rebuilt, note, success }

Additive.

Spawns an ANavLinkProxy actor in the editor world at a location

Parameter Type Required Description
location array no [x, y, z] world location for the nav link proxy

Returns: { actor_name, actor_label, actor_path, actor_class, success }

spawn_nav_modifier_volume

Additive.

Spawns an ANavModifierVolume in the editor world with a box brush

Parameter Type Required Description
location array no [x, y, z] world location for the volume
area_class string no Optional UNavArea subclass name to apply via SetAreaClass
extent array no Optional [x, y, z] box half-extent (default 100,100,100)

Returns: { actor_name, actor_label, actor_path, actor_class, brush_built, area_class_applied, area_class, success }