Pictomancy 0.0.1

dotnet add package Pictomancy --version 0.0.1
                    
NuGet\Install-Package Pictomancy -Version 0.0.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Pictomancy" Version="0.0.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Pictomancy" Version="0.0.1" />
                    
Directory.Packages.props
<PackageReference Include="Pictomancy" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Pictomancy --version 0.0.1
                    
#r "nuget: Pictomancy, 0.0.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Pictomancy@0.0.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Pictomancy&version=0.0.1
                    
Install as a Cake Addin
#tool nuget:?package=Pictomancy&version=0.0.1
                    
Install as a Cake Tool

FFXIV Pictomancy

Pictomancy is a library for drawing 3D world overlays and VFX in Dalamud plugins. Pictomancy has an ImGui-like interface that operates in world space instead of a 2D canvas. Pictomancy simplifies the hard parts of 3D overlays by correctly clipping objects behind the camera and clipping around the native UI.

Pictomancy is still in development and does not have a stable API. Use at your own risk.

Installation

Nuget package: https://www.nuget.org/packages/Pictomancy

Use as a git sub-module:

git submodule add https://github.com/sourpuh/ffxiv_pictomancy

Use

Library initialization:

public MyPlugin(DalamudPluginInterface pluginInterface)
{
    PictoService.Initialize(pluginInterface);

    ... Your Code Here ...
}

public void Dispose()
{
    PictoService.Dispose();

    ... Your Code Here ...
}

Drawing an ImGui overlay with DirectX Renderer

using (var drawList = PictoService.Draw())
{
    if (drawList == null)
        return;
    // Draw a circle around a GameObject's hitbox
    Vector3 worldPosition = gameObject.Position;
    float radius = gameObject.HitboxRadius;
    drawList.AddCircleFilled(worldPosition, radius, fillColor);
    drawList.AddCircle(worldPosition, radius, outlineColor);
}

Drawing with in-game VFX

You must specify an ID for each element you draw. IDs should be consistent across frames and unique for each VFX with the same path.

VFX with the same ID and path are retained when drawn in consecutive frames. If the ID is specified in consecutive frames, the VFX is updated to match the new parameters. If the ID is not specified in consecutive frames, the VFX is destroyed.

// Draw a circle omen VFX on a GameObject's hitbox
PictoService.VfxRenderer.AddOmen($"{gameobject.EntityId}", "general01bf", gameObject.Position, gameObject.HitboxRadius);

// Draw a tankbuster lockon VFX on a GameObject
PictoService.VfxRenderer.AddLockon($"{gameobject.EntityId}", "tank_lockon01i", gameobject);

// Draw a tether channeling VFX between two GameObjects
PictoService.VfxRenderer.AddChanneling($"{gameobject.EntityId}", "chn_nomal01f", gameobject1, gameobject2);

If you want to draw basic Omen shapes, there are helpers provided to draw circles, lines, cones, and donuts. If the method returns void, it will always successfully draw. If the method returns a boolean, it will return false if it did not find an Omen to match your desired shape.

// Draw a circle around a GameObject's hitbox using the AddCircle helper
PictoService.VfxRenderer.AddCircle($"{gameobject.EntityId}", gameObject.Position, gameObject.HitboxRadius);
Product Compatible and additional computed target framework versions.
.NET net9.0-windows7.0 is compatible.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Pictomancy:

Package Downloads
FFXIVOcelot

Package Description

GitHub repositories (1)

Showing the top 1 popular GitHub repositories that depend on Pictomancy:

Repository Stars
ffxivcode/AutoDuty
Dalamud Plugin for FFXIV - AutoDuty
Version Downloads Last Updated
0.0.1 364 8/5/2025
0.0.0 116 7/28/2025