Skip to main content

What's New in Dalamud v13

Dalamud v13 is the current major version of Dalamud, and will release with Patch 7.3. This is a high-level overview of changes. You can see a code diff of all of these changes here.

Key Information

  • Branch: api13 (view on GitHub)
  • Release Date: August 6, 2025
  • API Level: 13
  • .NET Version: .NET 9.0.3
Dalamud.NET.Sdk Migration

If you haven't done so yet, we strongly recommend migrating your plugin project to Dalamud.NET.Sdk, especially if you are still using a targets file to reference the Dalamud SDK. We no longer plan to support the targets file in the next API level.

It includes the latest version of DalamudPackager, pinned to the current API level, and will make it easier for us to introduce changes to how we distribute SDK files in the future.

Major Changes

  • Dalamud uses new bindings to the ImGui UI library, derived from Hexa.NET.ImGui, to improve offered APIs and facilitate an ImGui upgrade in the future.
    • Namespace and assembly changes:
      • ImGuiNETDalamud.Bindings.ImGui
      • ImPlotNETDalamud.Bindings.ImPlot
      • ImGuizmoNETDalamud.Bindings.ImGuizmo
    • If you use Dalamud.NET.Sdk, the new binding assemblies are now automatically referenced in your project. If you don't, you will need to manually reference these three new assemblies and remove the reference to ImGuiNET.
    • ImGui internals are now accessible under the Dalamud.Bindings.ImGui.ImGuiP class.
      • Please note that these are still considered "unstable" and will require more work on your part to upgrade, once we upgrade ImGui.
    • IDalamudTextureWrap.ImGuiHandle was renamed to Handle.
    • Several text functions are now unformatted by default.
      • ImGui.Text now calls ImGui.TextUnformatted internally.
      • ImGuiHelpers.SafeTextWrapped was obsoleted, because ImGui.TextWrapped is safe now.
      • ImGuiHelpers.SafeTextColoredWrapped was obsoleted, because a new custom function ImGui.TextColoredWrapped was added.
    • Utf8 Strings Literals are now supported (ImRaii included!).
    • To get an ImGuiListClipperPtr simply call ImGui.ImGuiListClipper();.
    • Capitalization of enum names is now in PascalCase, for example ImGuiColorEditFlags.DisplayRGB is now ImGuiColorEditFlags.DisplayRgb.
    • Functions that had out parameters now take those via pointer or ref.
  • New ClientStructs-independent wrapper structs have been introduced for AtkUnitBase, AgentInterface and UIModule. Due to time constraints these currently only provide very basic (or in the case of UIModule no) functionality. They have IsNull and Address properties and are implicitly castable to nint. You're free to cast the Address field to another pointer type.

IGameNetwork

The service was removed, as opcodes change every patch, making maintenance arduous, and the packet data itself has proven itself to be very unreliable.

  • Please hook functions that process the data instead - reach out on Discord if you are having issues with this, as doing this can be quite feature-specific.

IAddonLifecycle

  • AddonArgs.Addon is now of type AtkUnitBasePtr.

IDalamudPluginInterface

  • AddChatLinkHandler, and RemoveChatLinkHandler have been moved to the IChatGui service.
  • ActivePluginsChanged is now called when a plugin loaded (with PluginListInvalidationKind.Loaded) or unloaded (with PluginListInvalidationKind.Unloaded).
    • Please note that enabling or disabling collections will trigger individual events for each plugin.

IDtrBar

  • IReadOnlyDtrBarEntry.OnClick now receives an AddonMouseEventData parameter.
    • AddonMouseEventData contains the following properties: IsLeftClick, IsRightClick, IsNoModifier, IsAltHeld, IsControlHeld, IsShiftHeld, IsDragging, IsScrollUp, IsScrollDown, Position.
  • IReadOnlyDtrBarEntry.TriggerClickAction has been removed due to changes to OnClick.

IGameGui

  • GetUIModule now returns UIModulePtr.
  • GetAddonByName now returns AtkUnitBasePtr.
  • GetAgentById and the two FindAgentInterface functions now return AgentInterfacePtr.

IObjectTable

  • New enumerables have been added: PlayerObjects, CharacterManagerObjects, ClientObjects, EventObjects, StandObjects and ReactionEventObjects.

IUiBuilder

  • New events have been added: DefaultGlobalScaleChanged, DefaultFontChanged and DefaultStyleChanged.
  • New properties have been added: FontDefaultSizePt, FontDefaultSizePx, FontDefault, FontIcon, FontMono.

Minor Changes

  • Dalamud.Game.Text.SeStringHandling.Payloads.ItemPayload.ItemKind was moved out of the ItemPayload, to the Dalamud.Utility namespace.
  • ISeStringEvaluator: The service is no longer experimental and now supports the SheetSub payload.
    • A new payload was found in 7.3, which will be supported at a later time.
  • Lumina: The ExtractText() function on ReadOnlySeString and ReadOnlySeStringSpan does no longer need to be called. The ToString() function now returns text only (without soft hyphens!) and optionally provides formatting features (see Lumina PR #109 for more information). The macro string output has been moved to a new ToMacroString() function.

Packages

We have released new packages of the SDK and DalamudPackager for this Dalamud API version.

  • Dalamud.NET.Sdk v13.0.0
    • To upgrade, change the header of your plugins' .csproj file: <Project Sdk="Dalamud.NET.Sdk/13.0.0">
  • DalamudPackager v13.0.0
    • You don't need to reference DalamudPackager manually if you use Dalamud.NET.Sdk, it is done for you.

Contributors

We want to thank Marzent, Critical-Impact, Aireil, Haselnussbomber, KirisameVanilla, kizer, zbee, nathanctech, AlexValliere, voidstar0, Cytraen, Blooym, Jaksuhn, wolfcomp, ItsBexy, nebel, WorkingRobot and Infiziert90 for their contributions during this patch cycle.

FFXIVClientStructs Changes

FFXIVClientStructs will introduce their own breaking changes for Patch 7.3, which will be documented on their docs page.

We want to thank aers, Caraxi, Haselnussbomber, Pohky, WildWolf and the other FFXIVClientStructs contributors for their work.