This content originally appeared on DEV Community and was authored by taku25
Intro
Here is this week's update on my plugin suite for Unreal Engine development in Neovim.
My stance hasn't changed: "For heavy-duty debugging, full IDEs like Visual Studio or Rider are still king."
However, there are so many times when I just want to check a variable quickly or identify a crash location without leaving my terminal. I wanted to be able to do "light debugging" right inside Neovim.
So, this week, I released a debugging plugin to grant that wish, along with a specialized file explorer dedicated to the Unreal Engine project structure.
- UDB.nvim: A zero-config debugger bridge (no
launch.jsonneeded!). - UNX.nvim: A lightweight logical file viewer & symbol tree specialized for UE projects.
With these additions, I feel like Neovim has finally become a true "IDE for Unreal Engine."
✨ UDB (Unreal Debugger Bridge)
UDB.nvim is, as the name suggests, a bridge connecting Neovim (nvim-dap) and the Unreal Engine debugging environment.
Its biggest feature is "Almost Zero-Config."
Usually, setting up a debugger requires writing a complex launch.json. UDB automates this by leveraging my other plugins:
- It uses UEP.nvim to parse the
.uproject. - It uses UBT.nvim to locate the build configuration and the
UnrealEditorbinary position.
All you basically need to do is tell UDB which DAP adapter type to use.
(Note: It defaults to codelldb).
Configuration Example
Here is a standard setup using codelldb:
-- Example setup for nvim-dap and codelldb
local dap = require("dap")
dap.adapters.codelldb = {
type = 'server',
port = "${port}",
executable = {
-- Specify the path installed via Mason or your package manager
command = vim.fn.stdpath("data") .. "/mason/bin/codelldb.cmd",
args = {"--port", "${port}"},
detached = false,
}
}
If you want to use your own custom DAP adapter, just change the adapter_type in the UDB setup:
require("UDB").setup({
debugger = {
adapter_type = "codelldb", -- Default DAP adapter
},
})
What can it do?
-
Debug Immediately: Just run
:UDB run_debug. It identifies the correct binary, attaches the debugger via the DAP adapter, and launches. -
Flexible Target Switching: Whether you want to "Launch the Editor to debug Blueprints" or "Launch as a Standalone Game," you can select it via a picker using
:UDB run_debug!. -
Seamless Build Integration: If you have [UBT.nvim] and [UEP.nvim] installed, UDB automatically reads your current build config (e.g.,
DebugGame/Development Editor). It remembers the last configuration built by UBT, so if you runUBT debug!to switch targets,UDB run_debugwill immediately launch that exact configuration.
Installation
You need nvim-dap and an adapter like codelldb.
{
"taku25/UDB.nvim",
dependencies = {
"mfussenegger/nvim-dap",
"taku25/UEP.nvim",
"taku25/UBT.nvim",
{ "taku25/UNL.nvim", lazy=false }
},
}
🚀 UNX (Unreal Neovim eXplorer): Breaking Free from Physical Folders
Next up is the specialized explorer, UNX.nvim.
Previously, I extended neo-tree.nvim to handle UE projects, but I wanted to see information more specific to UE development and didn't want to force users to install a specific general-purpose filer just for UEP. So, I built this as a completely standalone plugin.
Feature: The "Logical View"
Unlike generic file explorers, UNX visualizes the tree based on the mental model of Unreal Engine C++ development.
-
Logical View: You don't need to dig through deep physical file layers (
Source/ProjectName/...). It displays the tree in a logical module structure: "Game", "Plugins", and "Engine". - Symbol View: It automatically displays classes, functions, and properties contained in the selected C++ file in the bottom side panel. You can grasp the structure without even opening the header file.
- Git/VCS Integration: Asynchronously fetches status and highlights modified files with icons.
-
Class Creation (UCM Integration): You can manage C++ classes directly from the tree using simple hotkeys:
-
a: Add Class -
d: Delete -
r: Rename -
A: Make Directory -
m: Switch Mode
-
Installation
{
"taku25/UNX.nvim",
dependencies = {
"taku25/UCM.nvim",
{ "taku25/UNL.nvim", lazy = false }
},
opts = {},
}
Summary: A Complete Dev Cycle in Neovim
By combining the two plugins introduced today with my existing suite, the workflow is now effectively complete entirely within Neovim:
- UEP (Project): Parses project information.
- UNX (Explorer): Logical view for file management.
- UCM (Class Manager): Create and delete C++ classes.
- UBT (Build Tool): Executes builds.
- UDB (Debugger): Runs debugging and verification.
- ULG (Log): Checks logs.
You can handle these easily by using the all-in-one suite UnrealDev.nvim.
Looking back to when I first started making UBT.nvim, it feels like I've come a long way. If you are interested in developing Unreal Engine projects with Neovim, please give it a try!
GitHub Repositories
This content originally appeared on DEV Community and was authored by taku25
taku25 | Sciencx (2025-11-24T13:21:34+00:00) Neovim x Unreal Engine: Zero-Config Debugging & A Dedicated Explorer 🚀. Retrieved from https://www.scien.cx/2025/11/24/neovim-x-unreal-engine-zero-config-debugging-a-dedicated-explorer-%f0%9f%9a%80/
Please log in to upload a file.
There are no updates yet.
Click the Upload button above to add an update.