Open source · MIT Licensed · v0.1.0

The missingopen source
link between Cursor and Unreal Engine

I built this because Rider and Visual Studio felt ancient next to Cursor. It auto-detects your .uproject, finds engine installs from the registry, and gives Cursor's AI full build superpowers via a built-in MCP server.

EngineLink — Output
> detected Obstacle_Assault.uproject
> engine: Unreal Engine 5.4 (registry) ✓
> build tools: VS Build Tools 2022 ✓
> compile_commands.json generated ✓
> cursor rules written to .cursor/rules/ ✓
> MCP server started on stdio ✓
> ready — Ctrl+Shift+B to build.
Built forWindows 10/11UE 5.4+VS Build Tools 2022Cursor / VS Code
See it in action

Cursor + Unreal Engine + AI — all wired up

.cursor/rules in the explorer, UE C++ in the editor, Cursor's AI agent fixing code on the right, and EngineLink's status bar at the bottom.

EngineLink running in Cursor — showing .cursor/rules in the file explorer, Unreal Engine C++ code in the editor, Cursor AI agent chat fixing code, and the EngineLink status bar
📁.cursor/rules/ in explorer
🤖AI agent fixing UE code
EngineLink status bar
🔧UPROPERTY macros with specifiers
Features

What it does

One thing done well: making the build-compile-iterate loop painless in Cursor. Not an IDE replacement — just the glue between your UE project and your editor.

Detection

Auto-Detection

Scans for .uproject files, reads EngineAssociation, discovers UE installs from the Windows registry, and locates VS Build Tools via vswhere. Zero config.

Build

Build / Rebuild / Clean

Invoke UnrealBuildTool directly from the editor with full output streaming. MSVC errors are parsed and surfaced as native VS Code diagnostics in the Problems panel.

Build

Editor-Aware Builds

Detects when Unreal Editor is running and suggests Live Coding over a full build to avoid DLL lock errors. Smart defaults, fewer failed builds.

Build

Live Coding

Trigger Ctrl+Alt+F11 hot-reload in a running Unreal Editor session. No native dependencies — just a clever PowerShell SendKeys one-liner.

IntelliSense

compile_commands.json

Runs UBT's GenerateClangDatabase mode and copies the result to your project root so Cursor's C++ IntelliSense works — no red squiggles.

AI

MCP Server + Cursor Rules

A sidecar MCP server lets Cursor's AI agent build, diagnose, and fix errors autonomously. Auto-generated .cursor/rules/ teach AI UE conventions.

Editor UX

Native feel.
Zero friction.

Everything hooks into the editor natively — status bar, title bar, Problems panel. No weird external tools or separate windows.

Status Bar

Project name, engine version, build config, and quick-action buttons — always visible at the bottom of your editor.

Title Bar Actions

Build, Launch Unreal Editor, and Live Coding Compile with keybindings — right in the editor title bar.

Problems Panel

MSVC and UBT errors are parsed with custom problem matchers ($enginelink-msvc, $enginelink-ubt) and surfaced as native diagnostics.

Task Provider

EngineLink tasks are available in the Tasks panel and can be referenced from tasks.json for custom workflows.

Title Bar Actions
EngineLink title bar menu showing Build, Launch Unreal Editor, and Live Coding Compile with keybindings, alongside Cursor AI agent chat
Status Bar
EngineLink status bar showing Build, Rebuild, Clean, Development, Editor, Win64, Obstacle_Assault, UE 5.7, Live Coding, Launch buttons
AI Integration

Let the AI handle builds

EngineLink ships an MCP server so Cursor's AI can actually compile your project, read the errors, and fix them. Auto-generated .cursor/rules teach it proper Unreal C++.

ObstacleAssault — Build & Fix
+

build my project and fix any errors

Agent Auto
Building ObstacleAssault 18s

I'll build the project using enginelink_build and check for compilation errors.

enginelink_build()Build failed — 1 error, 0 warnings
enginelink_get_build_errors()error C2664: cannot convert 'FString' to 'const TCHAR*'
Explored 2 files

Found a type conversion error in PlayerController.cpp. The FString needs to be dereferenced with the * operator. Fixing and rebuilding.

PlayerController.cpp+1-1
45 void AMyPlayerController::SetHUDMessage()
46 {
47- HUDWidget->SetText(PlayerMessage);
47+ HUDWidget->SetText(*PlayerMessage);
48 }
enginelink_build()Build succeeded — 0 errors, 0 warnings (14.2s)

Fixed build error in ObstacleAssault:

  • Dereferenced FString with * operator for TCHAR* conversion in PlayerController.cpp:47
  • Rebuilt project successfully with 0 errors
No linter issues were introduced in the edited files.

MCP Server Tools

Spawned as a sidecar process. Registered automatically in .cursor/mcp.json.

enginelink_buildBuild the project (supports configuration and target overrides)
enginelink_rebuildClean and rebuild
enginelink_cleanClean build artifacts
enginelink_get_build_errorsRetrieve errors with file paths, line numbers, and messages
enginelink_get_project_infoGet project name, engine version, modules, and build settings
enginelink_launch_editorLaunch Unreal Editor
enginelink_live_codingTrigger a Live Coding hot-reload
enginelink_generate_compile_commandsRegenerate compile_commands.json

Auto-Generated Rules

Generated on detection, never overwritten — customize freely.

.cursor/rules/
unreal-conventions.mdc

Class prefixes (U, A, F, E, I, T), PascalCase, UE container types

unreal-macros.mdc

UCLASS, UPROPERTY, UFUNCTION, USTRUCT, UENUM, GENERATED_BODY

unreal-build-system.mdc

.Build.cs, .Target.cs, module structure, dependency management

unreal-live-coding.mdc

What Live Coding can and cannot patch at runtime

unreal-patterns.mdc

Delegates, timers, subsystems, Gameplay Tags, Enhanced Input, logging

Workflow

How it works

Seriously, just open a folder with a .uproject and you're good to go.

01

Open Project

Open any folder containing a .uproject file in Cursor. EngineLink activates automatically.

workspaceContains:**/*.uproject
02

Auto-Detect

Parses EngineAssociation, discovers matching UE installs from the registry, and locates VS Build Tools. The status bar populates instantly.

Zero configuration required
03

Build & Iterate

Press Ctrl+Shift+B to build, or use the Command Palette for Rebuild, Clean, Launch Editor, or Live Coding. Errors land in the Problems panel.

Ctrl+Shift+P → EngineLink: Build
04

AI-Powered Fixes

Tell Cursor "build my project and fix any errors" — the AI agent invokes UBT, reads the diagnostics, and proposes fixes autonomously.

MCP tools → diagnose → fix → rebuild
Get Started

Grab the code

Not on the Marketplace yet — early days! Clone it, build it, try it out. PRs and feedback are super welcome.

1. Clone & build
$git clone https://github.com/rmoubayed/engine-link.git && cd engine-link && npm install && npm run build
2. Install the extension
$code --install-extension enginelink-0.1.0.vsix

Or press F5 in the cloned repo to launch the Extension Development Host.

Windows 10/11

Registry-based engine discovery and PowerShell Live Coding are Windows-specific

Unreal Engine 5.4+

Tested with UE 5.4; earlier versions may work but are not officially supported

VS Build Tools

Required for MSVC compilation; detected automatically via vswhere

Cursor or VS Code

Engine version ^1.85.0