engine-settings
DevelopmentConfigure Unreal Engine core settings — rendering, physics, audio, garbage collection, console variables (cvars), and scalability levels (EngineSettingsService). Use when the user asks to change engine/rendering settings, set a console variable (r.*, etc.), adjust scalability/quality levels, or read engine config categories.
How to use this skill
Bring this guide into your coding agent with a prompt tailored to the tool you use.
- Open your project in Codex.
- Copy and paste the prompt below.
- Review files and risks before approving any action.
Inspect the Agent Skill at https://github.com/kevinpbuckley/VibeUE/blob/HEAD/Content/Skills/engine-settings/SKILL.md and all supporting files. Report provenance, permissions, scripts, dependencies, and security risks. Propose an exact installation into .agents/skills/engine-settings, but wait for my approval before writing files or running scripts.
Copying this prompt does not install or run the skill. Review third-party files before use.
Engine Settings Skill
🔀 Registered settings moved to the engine. Category-based registered-setting access (
list_categories/list_settings/get_setting/set_setting) is now Unreal 5.8's nativeConfigSettingsToolset— reach it withcall_tool(rundescribe_toolsetonConfigSettingsToolsetfor its actions/params). VibeUE'sEngineSettingsServicewas trimmed to the delta the engine doesn't cover: console variables (cvars), scalability levels, raw engine INI read/write, and config save. Use those fromexecute_python_codeas shown below.
Critical Rules
⚠️ CVars (VibeUE) vs Registered Settings (engine toolset)
- CVars (console variables) →
unreal.EngineSettingsService.get_console_variable/set_console_variable(kept in VibeUE). - Registered settings (category + key, e.g. RendererSettings) → engine
ConfigSettingsToolsetviacall_tool.EngineSettingsService.get_setting/set_setting/list_categories/list_settingswere removed in the 5.8 consolidation.
# CVars (names like r.ReflectionMethod) — VibeUE
value = unreal.EngineSettingsService.get_console_variable("r.ReflectionMethod")
unreal.EngineSettingsService.set_console_variable("r.ReflectionMethod", "1")
# Registered settings (category-based) — use the engine ConfigSettingsToolset via call_tool.
# Raw INI is also still available in VibeUE when you know the section/key:
value = unreal.EngineSettingsService.get_engine_ini_value(
"/Script/Engine.RendererSettings", "bEnableRayTracing", "Engine.ini")
⚠️ Check Read-Only Before Setting CVars
info = unreal.ConsoleVariableInfo()
if unreal.EngineSettingsService.get_console_variable_info("r.MaxQualityMode", info):
if not info.is_read_only:
unreal.EngineSettingsService.set_console_variable(info.name, "1")
⚠️ Some Settings Require Restart
set_console_variable / set_engine_ini_value return an FEngineSettingResult whose
requires_restart flag tells you whether the change takes effect immediately. (Registered-setting
results come from the engine ConfigSettingsToolset instead.)
Browsing registered settings
Listing categories and the settings inside them is now an engine ConfigSettingsToolset job —
call it via call_tool and run describe_toolset for the available actions. These engine
categories cover rendering, physics, audio, GC, networking, collision, AI, input, and the rest.
For everything VibeUE still owns, see the cvar / INI / scalability workflows below.
Workflows
Enable Ray Tracing
import unreal
import json
rt_settings = {
"r.RayTracing": "1",
"r.RayTracing.Shadows": "1",
"r.RayTracing.Reflections": "1",
"r.ReflectionMethod": "1"
}
result = unreal.EngineSettingsService.set_console_variables_from_json(json.dumps(rt_settings))
unreal.EngineSettingsService.save_all_engine_config()
Optimize for Performance
import unreal
import json
# Set overall scalability to Low (0)
unreal.EngineSettingsService.set_overall_scalability_level(0)
# Disable expensive features
perf_settings = {
"r.RayTracing": "0",
"r.VolumetricFog": "0",
"r.MotionBlurQuality": "0",
"r.Shadow.MaxResolution": "512"
}
unreal.EngineSettingsService.set_console_variables_from_json(json.dumps(perf_settings))
Search CVars
import unreal
shadows = unreal.EngineSettingsService.search_console_variables("shadow", 100)
for cvar in shadows:
print(f"{cvar.name}: {cvar.value} ({cvar.type})")
Set Engine INI Values
import unreal
result = unreal.EngineSettingsService.set_engine_ini_value(
"/Script/EngineSettings.GameMapsSettings",
"GameDefaultMap",
"/Game/Maps/Lvl_Main.Lvl_Main",
"DefaultEngine.ini"
)
Data Structures
Python Naming Convention: C++ types like
FEngineSettingResultare exposed asEngineSettingResultin Python (noFprefix).
EngineSettingResult (returned by set_* and INI write methods)
success,error_messagemodified_settings,failed_settingsrequires_restart
ConsoleVariableInfo
name,value,default_value,descriptiontype,flags,is_read_only
VibeUE EngineSettingsService covers:
- Rendering optimization: Adjust r.* cvars, ray tracing, shadows
- Performance profiling: GC cvars (gc.*), streaming, scalability
- Quality presets: Apply overall or per-group scalability levels
- Raw engine INI: read/write sections directly when you know the key
For browsing/editing registered settings by category (physics, audio, collision, AI, input
classes, etc.), use the engine ConfigSettingsToolset via call_tool.
Sample scripts (run via execute_python_code)
scripts/set_cvars.txt— read scalability and set a console variable.