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
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:
ImGuiNET
→Dalamud.Bindings.ImGui
ImPlotNET
→Dalamud.Bindings.ImPlot
ImGuizmoNET
→Dalamud.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 toHandle
.- Several text functions are now unformatted by default.
ImGui.Text
now callsImGui.TextUnformatted
internally.ImGuiHelpers.SafeTextWrapped
was obsoleted, becauseImGui.TextWrapped
is safe now.ImGuiHelpers.SafeTextColoredWrapped
was obsoleted, because a new custom functionImGui.TextColoredWrapped
was added.
- Utf8 Strings Literals are now supported (ImRaii included!).
- To get an
ImGuiListClipperPtr
simply callImGui.ImGuiListClipper();
. - Capitalization of enum names is now in PascalCase, for example
ImGuiColorEditFlags.DisplayRGB
is nowImGuiColorEditFlags.DisplayRgb
. - Functions that had
out
parameters now take those via pointer orref
.
- Namespace and assembly changes:
- 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
andAddress
properties and are implicitly castable tonint
. 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 typeAtkUnitBasePtr
.
IDalamudPluginInterface
AddChatLinkHandler
, andRemoveChatLinkHandler
have been moved to theIChatGui
service.ActivePluginsChanged
is now called when a plugin loaded (withPluginListInvalidationKind.Loaded
) or unloaded (withPluginListInvalidationKind.Unloaded
).- Please note that enabling or disabling collections will trigger individual events for each plugin.
IDtrBar
IReadOnlyDtrBarEntry.OnClick
now receives anAddonMouseEventData
parameter.AddonMouseEventData
contains the following properties:IsLeftClick
,IsRightClick
,IsNoModifier
,IsAltHeld
,IsControlHeld
,IsShiftHeld
,IsDragging
,IsScrollUp
,IsScrollDown
,Position
.
IReadOnlyDtrBarEntry.TriggerClickAction
has been removed due to changes toOnClick
.
IGameGui
GetUIModule
now returnsUIModulePtr
.GetAddonByName
now returnsAtkUnitBasePtr
.GetAgentById
and the twoFindAgentInterface
functions now returnAgentInterfacePtr
.
IObjectTable
- New enumerables have been added:
PlayerObjects
,CharacterManagerObjects
,ClientObjects
,EventObjects
,StandObjects
andReactionEventObjects
.
IUiBuilder
- New events have been added:
DefaultGlobalScaleChanged
,DefaultFontChanged
andDefaultStyleChanged
. - 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 theDalamud.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. TheToString()
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 newToMacroString()
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">
- To upgrade, change the header of your plugins'
- 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.