Skip to main content
Dalamud provides a comprehensive set of services that allow plugins to interact with Final Fantasy XIV. These services are injected into your plugin through dependency injection and provide access to game state, UI elements, and various subsystems.

Getting Started

Services are accessed through dependency injection in your plugin constructor:
public class MyPlugin : IDalamudPlugin
{
    private readonly IClientState clientState;
    private readonly IChatGui chatGui;
    
    public MyPlugin(
        IClientState clientState,
        IChatGui chatGui)
    {
        this.clientState = clientState;
        this.chatGui = chatGui;
    }
}

Core Services

Game State

User Interface

Commands & Input

Data & Resources

Framework & Hooking

Logging

Service Lifetime

All services follow the plugin lifetime:
  • Services are available after plugin construction
  • Services remain valid until plugin disposal
  • Always unsubscribe from events in your Dispose() method

Best Practices

  1. Dependency Injection - Request only the services you need in your constructor
  2. Event Cleanup - Always unsubscribe from service events in Dispose()
  3. Thread Safety - Most services must be used from the framework thread
  4. Error Handling - Wrap service calls in try-catch blocks for stability

Complete Service List

For a complete list of all available services, see All Services.

Build docs developers (and LLMs) love