Skip to main content

What is Dalamud?

Dalamud is a plugin development framework for Final Fantasy XIV that provides developers with robust APIs for game data access, native interoperability, and UI customization. Built on .NET, Dalamud enables you to create powerful plugins that enhance the game experience while maintaining stability and performance. Dalamud is designed to work seamlessly with XIVLauncher, which handles dependency management and plugin loading for end users.
If you’re a player looking to use plugins (not develop them), you should download XIVLauncher instead. This documentation is for plugin developers.

Why Build with Dalamud?

Rich API

Access game state, chat, commands, UI overlays, and more through a comprehensive plugin API

ImGui Integration

Draw custom windows and overlays using Dear ImGui with full font and texture support

Game Data Access

Query game sheets, items, NPCs, and other data through the integrated Lumina data manager

IPC System

Share data and functionality between plugins using CallGate providers and subscribers

Service Injection

Leverage dependency injection to access Dalamud services cleanly in your plugin classes

Active Community

Join thousands of developers building plugins with support from the Dalamud Discord

Get Started

1

Set Up Your Environment

Install the .NET SDK and required dependencies to start developing plugins locally.

Installation Guide

Follow our step-by-step setup guide
2

Create Your First Plugin

Build a working plugin in minutes with our quickstart tutorial.

Quickstart Tutorial

Get your first plugin running
3

Explore the API

Learn about the core services and capabilities available to your plugins.

API Documentation

Browse the full API reference

Core Concepts

Understand the fundamental architecture of Dalamud plugins:

Plugin Lifecycle

Learn how plugins are loaded, initialized, and disposed

Dependency Injection

Use service injection to access Dalamud APIs elegantly

Service Locator

Access services dynamically when injection isn’t available

Architecture

Understand how Dalamud loads into the game process

Common Use Cases

Register custom slash commands and interact with the game’s chat system. Perfect for automation tools and chat enhancements.
commandManager.AddHandler("/mycommand", new CommandInfo(OnCommand)
{
    HelpMessage = "Does something awesome!"
});
Create custom windows and overlays using ImGui. Build HUDs, configuration panels, and visualization tools.
pluginInterface.UiBuilder.Draw += () =>
{
    ImGui.Begin("My Plugin Window");
    ImGui.Text("Hello from Dalamud!");
    ImGui.End();
};
Track player state, target information, party composition, and more in real-time.
var player = clientState.LocalPlayer;
if (player != null)
{
    var currentHP = player.CurrentHp;
    var maxHP = player.MaxHp;
}
Access game data sheets for items, actions, quests, and other game content.
var item = dataManager.GetExcelSheet<Item>()?.GetRow(itemId);
if (item != null)
{
    var itemName = item.Name.ToString();
}

Community & Support

Discord Server

Join our active community for support and discussion

GitHub Repository

View the source code and contribute to Dalamud

Developer FAQ

Find answers to common development questions

Example Plugins

Explore sample code and plugin templates
Important: Dalamud and all plugins are third-party tools not affiliated with Square Enix. Use at your own discretion.

What’s Next?

Ready to build your first plugin? Head over to our Installation Guide to set up your development environment, or jump straight into the Quickstart Tutorial if you already have everything configured. For a deeper understanding of Dalamud’s architecture and design patterns, explore the Core Concepts section.

Build docs developers (and LLMs) love