Dalamud Plugin Development Documentation

website·Indexed 32 days ago

https://dalamud.dev

Developer documentation and API reference for Dalamud, including guides on plugin development, publishing, and reverse engineering. Features detailed API specifications for Dalamud.dll, including IPC interfaces like IIdDataShareAdapter and INameDataShareAdapter, and versioning information for v15 and v10.

Tokens
508.6K
Snippets
3.6K
Records
4.8K
Agent score
61%

What's inside Dalamud

  1. Overview of Dalamud.Interface.ManagedFontAtlas

    The Dalamud.Interface.ManagedFontAtlas namespace provides managed abstractions for ImGui font management. It includes tools for building font atlases, managing font handles with reference counting, and configuring fonts safely. Key components include IFontAtlas for atlas wrapping and FontAtlasBuildToolkitUtilities for convenience in font building.
  2. Overview of GameConfigSection

    The GameConfigSection class represents a specific section of the game configuration. It provides properties to identify the section and its size, as well as helper methods to get and set configuration values of various types.
    public class GameConfigSection
  3. Overview of Dalamud.Plugin.Services interfaces

    The Dalamud.Plugin.Services namespace contains the core service interfaces required for FFXIV plugin development. These services provide access to game state, UI manipulation, and system management. All services implement the IDalamudService marker interface.
  4. Overview of the UiBuilder class

    The UiBuilder class (located in Dalamud.dll) is used to create custom windows and overlays drawn on top of the game. It implements IDisposable and IUiBuilder.
    public sealed class UiBuilder : IDisposable, IUiBuilder
  5. Overview of Dalamud.Interface.Animation namespace

    The Dalamud.Interface.Animation namespace provides tools for creating animations within the Dalamud interface. It includes AnimUtil for general animation helper functions and Easing as a base class for implementing custom easing functions.
  6. Overview of the Dalamud.Interface.ImGuiNotification namespace

    The Dalamud.Interface.ImGuiNotification namespace contains the core components for implementing notifications in the ImGui interface. Key components include the Notification blueprint class, NotificationUtilities for implementation support, and interfaces such as INotification and IActiveNotification to manage the lifecycle and appearance of notifications.
  7. Overview of Dalamud.Utility namespace

    The Dalamud.Utility namespace contains a wide array of utility classes and extension methods designed to simplify plugin development. Key utility areas include:

    • Asynchronous Helpers: AsyncUtils and TaskExtensions for managing async behavior.
    • String & Text Manipulation: CStringExtensions, Utf8StringExtensions, StringExtensions, and various ReadOnlySe... extensions for handling game strings and Lumina text.
    • Game Data Utilities: ItemUtil for items, MapUtil for map coordinates and translations, and ActionKindExtensions/ObjectKindExtensions for game enums.
    • System & Resource Management: FilesystemUtil for file operations, DisposeSafety for resource cleanup, and ThreadSafety for concurrency.
    • Diagnostics & Performance: DiagnosticUtil for diagnostics and HitchDetector for detecting game hitches.
  8. Overview of Dalamud.Interface.ImGuiFileDialog namespace

    The Dalamud.Interface.ImGuiFileDialog namespace provides tools for implementing file and folder pickers within the ImGui interface in Dalamud. It includes the FileDialog class for the picker UI, a FileDialogManager to handle those dialogs, and supporting enums for sorting and configuration flags.
  9. Overview of SeString (Utf8String) structure

    SeString (internally known as Utf8String) is a custom null-terminated string implementation used by the game to carry binary payloads. These payloads allow for text formatting (e.g., bold), sound effects, interactable links, and dynamic logic using macros.

    Developers can use the following Lumina types for handling these strings:

    • ReadOnlySeString: An owning type that manages the underlying data buffer.
    • ReadOnlySeStringSpan: A lightweight, non-owning view for parsing from raw pointers.
    • SeStringBuilder: A utility for programmatically constructing SeStrings.
  10. Overview of the Dalamud.Game.Agent namespace

    The Dalamud.Game.Agent namespace (API version 15.x) provides the infrastructure for interacting with game agents. It includes utility classes for ID conversion and lifecycle event tracking, as well as enumerations for defining agent events and the types of arguments associated with those events.
  11. Overview of IUiBuilder for custom UI and overlays

    The IUiBuilder interface (found in Dalamud.dll) is used to draw custom windows and overlays on top of the game. It provides access to font handles, the game's Direct3D device, the main window handle, and various UI state flags such as whether a cutscene is active or if the UI is prepared for use.