Merge branch 'feature/forgeimizer-rebrand'
Build / build (push) Failing after 31s
Build / bench (push) Has been cancelled

This commit is contained in:
2026-05-26 20:03:30 +02:00
10 changed files with 213 additions and 118 deletions
+20 -12
View File
@@ -1,4 +1,4 @@
Craftimizer — Hellion fork of the FFXIV crafting plugin by Asriel Camora Forgeimizer — Hellion Forge fork of Craftimizer by Asriel Camora
═══════════════════════════════════════════════════════════════════ ═══════════════════════════════════════════════════════════════════
Source code Source code
@@ -8,15 +8,21 @@ Copyright (c) 2023 Asriel Camora
Original author of Craftimizer (https://github.com/WorkingRobot/Craftimizer). Original author of Craftimizer (https://github.com/WorkingRobot/Craftimizer).
The entire architecture, simulator, solver, recipe data layer, The entire architecture, simulator, solver, recipe data layer,
synthesis hooks, macro engine, and every UI window are Asriel's synthesis hooks, macro engine, and every UI window are Asriel's
work. This fork would not exist without it. work. Forgeimizer would not exist without it.
Copyright (c) 2026 Hellion Online Media Copyright (c) 2026 Hellion Online Media
Hellion fork maintenance: Dalamud SDK 14 → 15 migration for the Hellion Forge fork maintenance:
FFXIV 7.5 / Dalamud API 15 cycle. Scope: the ValueType → AtkValueType 1. Rebrand to Forgeimizer (AssemblyName, InternalName, plugin
rename in FFXIVClientStructs, the local IEndObject interface that manifest, WindowSystem name, conflict detector, /forgeimizer
replaces the removed Dalamud ImRaii.IEndObject, the typed ImRaii slash command alias).
disposable returns (TabItemDisposable, ColorDisposable), and the 2. Dalamud SDK 14 → 15 migration for the FFXIV 7.5 / Dalamud
ImRaii.TabItem ref-bool lifetime fix. No functional changes. API 15 cycle. Scope: the ValueType → AtkValueType rename in
FFXIVClientStructs, the local IEndObject interface that
replaces the removed Dalamud ImRaii.IEndObject, the typed
ImRaii disposable returns (TabItemDisposable, ColorDisposable),
and the ImRaii.TabItem ref-bool lifetime fix.
No functional changes to crafting logic, solver, or UI behaviour.
Source code is licensed under the MIT License. The full Licence text Source code is licensed under the MIT License. The full Licence text
lives in the LICENSE file at the root of this repository. lives in the LICENSE file at the root of this repository.
@@ -33,10 +39,12 @@ Copyright (c) 2026 Florian Eck
separate permission from the copyright holder. separate permission from the copyright holder.
Copyright (c) 2023 Asriel Camora Copyright (c) 2023 Asriel Camora
Designer of the Craftimizer plugin icon (icon.png), the embedded Designer of the original Craftimizer plugin icon (icon.png), the
graphics (Craftimizer/Graphics/*.png), and the documentation embedded graphics (Craftimizer/Graphics/*.png), and the
screenshots (Images/*.png). Asset reuse follows the MIT Licence documentation screenshots (Images/*.png). Forgeimizer continues
above. to use these assets unchanged as both attribution to the upstream
author and as the Dalamud plugin icon. Asset reuse follows the
MIT Licence above.
═══════════════════════════════════════════════════════════════════ ═══════════════════════════════════════════════════════════════════
Bundled binary assets Bundled binary assets
+1 -1
View File
@@ -139,7 +139,7 @@ public class MacroCopyConfiguration
public int MaxMacroCount { get; set; } = 5; public int MaxMacroCount { get; set; } = 5;
// CopyToMacroMate // CopyToMacroMate
public string MacroMateName { get; set; } = "Craftimizer"; public string MacroMateName { get; set; } = "Forgeimizer";
public string MacroMateParent { get; set; } = string.Empty; public string MacroMateParent { get; set; } = string.Empty;
// Add /nextmacro [down] // Add /nextmacro [down]
+3 -2
View File
@@ -1,9 +1,10 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project Sdk="Dalamud.NET.Sdk/15.0.0"> <Project Sdk="Dalamud.NET.Sdk/15.0.0">
<PropertyGroup> <PropertyGroup>
<Authors>Asriel Camora</Authors> <Authors>Asriel Camora (original); Jon Kazama / Hellion Forge (fork)</Authors>
<Version>2.9.1.1</Version> <Version>2.9.1.1</Version>
<PackageProjectUrl>https://github.com/WorkingRobot/Craftimizer.git</PackageProjectUrl> <AssemblyName>Forgeimizer</AssemblyName>
<PackageProjectUrl>https://gitea.hellion-forge.cloud/JonKazama-Hellion/Craftimizer</PackageProjectUrl>
<Configurations>Debug;Release</Configurations> <Configurations>Debug;Release</Configurations>
</PropertyGroup> </PropertyGroup>
-30
View File
@@ -1,30 +0,0 @@
{
"Author": "Asriel",
"Name": "Craftimizer",
"Punchline": "Simulate crafts, create computer-assisted macros, and get mid-craft suggestions from the comfort of your own game!",
"Description": "Allows you to generate macros and simulate all sorts of crafts without having to open another app. Open your crafting log to get started!",
"RepoUrl": "https://github.com/WorkingRobot/Craftimizer",
"InternalName": "Craftimizer",
"ApplicableVersion": "any",
"Tags": [
"crafting",
"doh",
"craft",
"macro",
"solver",
"generator",
"generate",
"simulate",
"sim",
"simulator"
],
"CategoryTags": [
"Jobs"
],
"IconUrl": "https://git.camora.dev/asriel/Craftimizer/raw/branch/main/icon.png",
"ImageUrls": [
"https://git.camora.dev/asriel/Craftimizer/raw/branch/main/Images/RecipeNote.png",
"https://git.camora.dev/asriel/Craftimizer/raw/branch/main/Images/SynthHelper.png",
"https://git.camora.dev/asriel/Craftimizer/raw/branch/main/Images/MacroEditor.png"
]
}
+32
View File
@@ -0,0 +1,32 @@
{
"Author": "Asriel Camora (original); Jon Kazama / Hellion Forge (fork)",
"Name": "Forgeimizer",
"Punchline": "A Hellion Forge plugin. Crafting simulator and macro solver for FFXIV, maintenance fork of Asriel Camora's Craftimizer kept current for Dalamud API 15+.",
"Description": "A Hellion Forge plugin — a maintenance fork of Craftimizer by Asriel Camora, brought back to life on Dalamud SDK 15 for FFXIV 7.5+.\n\nSimulate crafts, create computer-assisted macros, and get mid-craft suggestions from the comfort of your own game. Open your crafting log to get started.\n\nAll features below come from upstream Craftimizer, unchanged in this fork:\n- Crafting simulator with full action state tracking\n- Macro solver (Raphael Rust crate, bundled)\n- Recipe note overlay\n- Synthesis helper window\n- Macro editor and macro list\n\nThis fork:\n- Refuses to load if upstream Craftimizer is active (no parallel hooks)\n- No features added, no design changes vs upstream\n- Will archive if Asriel ships an official SDK 15 update upstream\n\nSource: https://gitea.hellion-forge.cloud/JonKazama-Hellion/Craftimizer",
"RepoUrl": "https://gitea.hellion-forge.cloud/JonKazama-Hellion/Craftimizer",
"InternalName": "Forgeimizer",
"ApplicableVersion": "any",
"Tags": [
"crafting",
"doh",
"craft",
"macro",
"solver",
"generator",
"generate",
"simulate",
"sim",
"simulator",
"hellion",
"forge"
],
"CategoryTags": [
"Jobs"
],
"IconUrl": "https://gitea.hellion-forge.cloud/JonKazama-Hellion/Craftimizer/raw/branch/main/icon.png",
"ImageUrls": [
"https://gitea.hellion-forge.cloud/JonKazama-Hellion/Craftimizer/raw/branch/main/Images/RecipeNote.png",
"https://gitea.hellion-forge.cloud/JonKazama-Hellion/Craftimizer/raw/branch/main/Images/SynthHelper.png",
"https://gitea.hellion-forge.cloud/JonKazama-Hellion/Craftimizer/raw/branch/main/Images/MacroEditor.png"
]
}
+4 -2
View File
@@ -37,9 +37,11 @@ public sealed class Plugin : IDalamudPlugin
public Plugin(IDalamudPluginInterface pluginInterface) public Plugin(IDalamudPluginInterface pluginInterface)
{ {
CraftimizerConflictDetector.ThrowIfUpstreamLoaded(pluginInterface);
Service.Initialize(this, pluginInterface); Service.Initialize(this, pluginInterface);
WindowSystem = new("Craftimizer"); WindowSystem = new("Forgeimizer");
Configuration = Configuration.Load(); Configuration = Configuration.Load();
IconManager = new(); IconManager = new();
Hooks = new(); Hooks = new();
@@ -120,7 +122,7 @@ public sealed class Plugin : IDalamudPlugin
public void ExecuteRetrySynthHelper() => public void ExecuteRetrySynthHelper() =>
SynthHelperWindow.AttemptRetry(); SynthHelperWindow.AttemptRetry();
[Command(name: "/craftimizer", description: "Open the settings window.")] [Command(name: "/craftimizer", aliases: "/forgeimizer", description: "Open the settings window.")]
private void OpenSettingsWindowForced() => private void OpenSettingsWindowForced() =>
OpenSettingsWindow(true); OpenSettingsWindow(true);
@@ -0,0 +1,27 @@
using System.Linq;
using Dalamud.Plugin;
namespace Craftimizer.Utils;
internal static class CraftimizerConflictDetector
{
private const string UpstreamInternalName = "Craftimizer";
public static void ThrowIfUpstreamLoaded(IDalamudPluginInterface pluginInterface)
{
var conflict = pluginInterface.InstalledPlugins.FirstOrDefault(p =>
p.InternalName == UpstreamInternalName && p.IsLoaded
);
if (conflict is null)
return;
throw new System.InvalidOperationException(
"Forgeimizer cannot load while the upstream Craftimizer plugin is active.\n\n"
+ "Both plugins register the same Dalamud hooks (UseAction, IsActionHighlighted) "
+ "and would conflict if loaded together.\n\n"
+ "Action: open /xlplugins, disable the upstream 'Craftimizer' plugin, "
+ "then re-enable Forgeimizer."
);
}
}
+2 -2
View File
@@ -1113,8 +1113,8 @@ public sealed class Settings : Window, IDisposable
using (HeaderFont.Push()) using (HeaderFont.Push())
{ {
ImGuiUtils.AlignCentered(ImGui.CalcTextSize("Craftimizer").X); ImGuiUtils.AlignCentered(ImGui.CalcTextSize("Forgeimizer").X);
ImGuiUtils.Hyperlink("Craftimizer", "https://github.com/WorkingRobot/Craftimizer", false); ImGuiUtils.Hyperlink("Forgeimizer", "https://gitea.hellion-forge.cloud/JonKazama-Hellion/Craftimizer", false);
} }
using (SubheaderFont.Push()) using (SubheaderFont.Push())
+49 -32
View File
@@ -2,41 +2,52 @@
## Acknowledgements ## Acknowledgements
This Craftimizer fork is built on Forgeimizer is built on
[Craftimizer](https://github.com/WorkingRobot/Craftimizer) by [Craftimizer](https://github.com/WorkingRobot/Craftimizer) by
**[Asriel Camora](https://github.com/WorkingRobot)**, who built and **[Asriel Camora](https://github.com/WorkingRobot)**, who built and
maintained the plugin for years. The entire architecture, the crafting maintained the plugin for years. The entire architecture, the crafting
simulator, the macro solver, the recipe data layer, the synthesis helper, simulator, the macro solver, the recipe data layer, the synthesis helper,
and every UI window come from Asriel's work. Without Craftimizer, this and every UI window come from Asriel's work. Without Craftimizer, Forgeimizer
fork would not exist. would not exist.
If this fork is useful to you, the credit for that belongs in large If Forgeimizer is useful to you, the credit for that belongs in large part
part to Asriel. to Asriel.
## A direct word to Asriel ## A direct word to Asriel
Hi. I am Jon. I forked Craftimizer because the upstream `main` branch Hi. I am Jon. I forked Craftimizer because the upstream `main` branch had
had not received an update past FFXIV 7.4, and I wanted a working not received an update past FFXIV 7.4, and I wanted a working crafting
crafting plugin for personal use that still loads on the current Dalamud plugin for personal use that still loads on the current Dalamud API. This
API. This is not a "do it better" fork. The opposite is true. I would is not a "do it better" fork. The opposite is true. I would have happily
have happily kept using upstream if it had stayed current. kept using upstream if it had stayed current.
What this fork adds is purely a Dalamud SDK 14 → 15 migration cycle. What this fork adds is purely:
Concretely, three changes in `FFXIVClientStructs` and Dalamud's `ImRaii`
namespace were renamed or removed; this fork ports the affected call
sites to the new symbol names and adds a local `IEndObject` interface to
replace the nested one Dalamud removed. No new features, no design
departures, no rebranding of internal namespaces. Where I had to modify
your sources I kept the edits minimal, isolated to the lines the SDK 15
compiler refused, and revertible.
If you pick Craftimizer back up and ship an upstream SDK 15 update, this 1. A Dalamud SDK 14 → 15 migration cycle. Three changes in
fork folds back into a pure mirror and the recommendation will be to `FFXIVClientStructs` and Dalamud's `ImRaii` namespace were renamed or
switch back to your build. removed; this fork ports the affected call sites to the new symbol
names and adds a local `IEndObject` interface to replace the nested
one Dalamud removed.
2. A user-facing rename to **Forgeimizer** so the plugin installs into
its own Dalamud slot and does not collide with your build in the
plugin list. A conflict detector hard-blocks the load if your
upstream `Craftimizer` plugin is active. Internal namespaces stay as
`Craftimizer.*`, the source tree structure is identical, and the
only renamed strings are the assembly name, the manifest, the window
system name, the about-tab title, the MacroMate default name, and a
`/forgeimizer` slash-command alias next to your `/craftimizer`.
No new features, no design departures, no rebranding of internal
namespaces. Where I had to modify your sources I kept the edits minimal,
isolated to the lines the SDK 15 compiler refused, and revertible.
If you pick Craftimizer back up and ship an upstream SDK 15 update,
Forgeimizer folds back into a pure mirror and the recommendation will be
to switch back to your build.
If anything in this fork ever steps on something you would not be okay If anything in this fork ever steps on something you would not be okay
with — attribution, naming, anything else — please reach out and I will with — attribution, the `Forgeimizer` naming, the conflict detector
fix it. Genuinely. language, anything else — please reach out and I will fix it. Genuinely.
## Why this fork exists ## Why this fork exists
@@ -47,9 +58,12 @@ API jump from level 14 to 15 in early 2026, and Craftimizer stopped
loading from then on. My personal crafting workflow depends on it, so I loading from then on. My personal crafting workflow depends on it, so I
took the maintenance burden on for a while. took the maintenance burden on for a while.
This fork is maintained for personal and friend-circle use under Hellion Forgeimizer is maintained for personal and friend-circle use under Hellion
Forge. It is not a competing project and does not target the broader Forge. It is not a competing project and does not target the broader
Craftimizer user base. Craftimizer user base. The rename to Forgeimizer exists so users who
install through the Hellion Forge custom repo can run it side-by-side with
the upstream Craftimizer install in the Dalamud plugin list without one
silently shadowing the other.
## Why this fork is not upstreamed ## Why this fork is not upstreamed
@@ -58,13 +72,14 @@ quiet for months and there is no signal that maintenance bandwidth is
available on Asriel's side. A drive-by SDK-15-bump PR with no maintainer available on Asriel's side. A drive-by SDK-15-bump PR with no maintainer
to land it would sit open indefinitely and create the wrong impression to land it would sit open indefinitely and create the wrong impression
that the change has been reviewed. If upstream becomes active again and that the change has been reviewed. If upstream becomes active again and
wants the migration, the change set is small enough (+23 / -19 lines, wants the migration, the change set is small enough (the SDK 15 patch is
seven files) to merge by hand in minutes. +23 / 19 lines across seven files; the rebrand is roughly a dozen lines
on top) to merge by hand in minutes.
## Maintainer contact ## Maintainer contact
If something in this fork causes problems, especially if it relates back If something in Forgeimizer causes problems, especially if it relates
to upstream Craftimizer or to attribution: back to upstream Craftimizer or to attribution:
- **Gitea Issues:** - **Gitea Issues:**
[JonKazama-Hellion/Craftimizer/issues](https://gitea.hellion-forge.cloud/JonKazama-Hellion/Craftimizer/issues) [JonKazama-Hellion/Craftimizer/issues](https://gitea.hellion-forge.cloud/JonKazama-Hellion/Craftimizer/issues)
@@ -76,9 +91,11 @@ or takedown questions, email is the fastest path.
## Trademarks and naming ## Trademarks and naming
"Craftimizer" is the name Asriel chose for the upstream plugin. This "Craftimizer" is the name Asriel chose for the upstream plugin. The
fork keeps the name as a reference to the origin and does not rebrand Forgeimizer rebrand keeps Craftimizer prominently named in the manifest
the user-facing identity. The Hellion brand is mine. description, the about-tab attribution, this NOTICE, and the COPYRIGHT
block, so the fork relationship is unambiguous. The Hellion brand is
mine.
--- ---
+75 -37
View File
@@ -1,4 +1,4 @@
# Craftimizer (Hellion Fork) # Forgeimizer
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
[![Dalamud API](https://img.shields.io/badge/Dalamud-API_15-purple)](https://github.com/goatcorp/Dalamud) [![Dalamud API](https://img.shields.io/badge/Dalamud-API_15-purple)](https://github.com/goatcorp/Dalamud)
@@ -10,60 +10,75 @@
<img src="docs/images/hellion-forge.png" alt="Hellion Forge" width="180" /> <img src="docs/images/hellion-forge.png" alt="Hellion Forge" width="180" />
</p> </p>
**Version 2.9.1.1 (Hellion fork)** — a maintenance fork of **Version 2.9.1.1** — a Hellion Forge maintenance fork of
[Craftimizer](https://github.com/WorkingRobot/Craftimizer) by [Craftimizer](https://github.com/WorkingRobot/Craftimizer) by
[Asriel Camora](https://github.com/WorkingRobot), brought back to life on [Asriel Camora](https://github.com/WorkingRobot), brought back to life on
Dalamud SDK 15 for FFXIV 7.5+. Dalamud SDK 15 for FFXIV 7.5+. Installs as a standalone plugin under the name
**Forgeimizer**, refuses to load while upstream Craftimizer is active.
Upstream Craftimizer received its last update for FFXIV 7.4 in late 2025 and Upstream Craftimizer received its last update for FFXIV 7.4 in late 2025 and
has been dormant since. With the Dalamud API jump from level 14 to 15 in has been dormant since. With the Dalamud API jump from level 14 to 15 in
early 2026, the plugin stopped loading. This fork is a narrow API-compatibility early 2026, the plugin stopped loading. Forgeimizer is a narrow
cycle that gets it back on its feet for personal and friend-circle use. No API-compatibility cycle that gets the crafting plugin back on its feet for
features added, no design changes, no behavior departures from upstream. If personal and friend-circle use. No features added, no design changes, no
Asriel ships an official SDK 15 update upstream, this fork folds back into a behavior departures from upstream. If Asriel ships an official SDK 15 update
pure mirror and the recommendation will be to switch back. upstream, Forgeimizer folds back into a pure mirror and the recommendation
will be to switch back.
## Acknowledgements ## Acknowledgements
Every line of crafting logic, every solver heuristic, the entire simulator, the Every line of crafting logic, every solver heuristic, the entire simulator,
recipe data layer, the synthesis hooks, and all UI windows are the recipe data layer, the synthesis hooks, and all UI windows are
**[Asriel Camora](https://github.com/WorkingRobot)**'s work. This fork only **[Asriel Camora](https://github.com/WorkingRobot)**'s work. Forgeimizer only
unblocks the API path. Full acknowledgement in [NOTICE.md](NOTICE.md). unblocks the API path and changes the user-facing plugin identity. Full
acknowledgement in [NOTICE.md](NOTICE.md).
This fork is maintained under **Hellion Forge**, the modding and plugin line of Forgeimizer is maintained under **Hellion Forge**, the modding and plugin
[Hellion Online Media](https://hellion-media.de). line of [Hellion Online Media](https://hellion-media.de).
--- ---
## What this fork changes ## What this fork changes
| Area | Upstream (last 2.9.1.1) | This fork | | Area | Upstream Craftimizer 2.9.1.1 | Forgeimizer |
| ----------------------------------------------- | ---------------------------------------- | ---------------------------------------------------------------------------------------- | | ----------------------------------------------- | ---------------------------------------- | ---------------------------------------------------------------------------------------- |
| Plugin display name (Dalamud installer) | `Craftimizer` | **`Forgeimizer`** |
| InternalName (config slot) | `Craftimizer` | **`Forgeimizer`** (separate `pluginConfigs/Forgeimizer/`) |
| Assembly | `Craftimizer.dll` | **`Forgeimizer.dll`** |
| Conflict handling | n/a | Throws `InvalidOperationException` on load if upstream `Craftimizer` is active |
| Dalamud SDK | 14.0.1 | **15.0.0** | | Dalamud SDK | 14.0.1 | **15.0.0** |
| Dalamud API Level | 14 (manifest unset, packager-inferred) | **15** (packager-set) | | Dalamud API Level | 14 | **15** |
| `FFXIVClientStructs.FFXIV.Component.GUI` type | `ValueType` | `AtkValueType` (upstream rename) | | `FFXIVClientStructs.FFXIV.Component.GUI` type | `ValueType` | `AtkValueType` (upstream rename) |
| `Dalamud.Interface.Utility.Raii.ImRaii` nested | `IEndObject`, `Color` (removed in SDK15) | local `IEndObject` interface in `ImRaii2.cs`; typed `ImRaii.*Disposable` returns | | `Dalamud.Interface.Utility.Raii.ImRaii` nested | `IEndObject`, `Color` (removed in SDK15) | local `IEndObject` interface in `ImRaii2.cs`; typed `ImRaii.*Disposable` returns |
| `Settings.TabItem` ref-bool lifetime | `var open = true; TabItem(label, ref open, flags)` (rejected by SDK 15 escape analysis) | `TabItem(label, flags)` overload (no ref) | | `Settings.TabItem` ref-bool lifetime | `var open = true; TabItem(label, ref open, flags)` (rejected by SDK 15 escape analysis) | `TabItem(label, flags)` overload (no ref) |
Diff total: **+23 / 19 lines** across seven files. The change set is Internal namespaces (`Craftimizer.*`) are intentionally left alone. This is a
intentionally minimal so a future upstream merge stays trivial. deliberate light-rename so a future upstream merge stays simple.
--- ---
## Tech Stack ## Tech Stack
| Category | Technology | | Category | Technology |
| ---------- | ----------------------------------------------------- | | ---------- | ------------------------------------------------------- |
| Platform | Dalamud Plugin (API Level 15) | | Platform | Dalamud Plugin (API Level 15) |
| Language | C# / .NET 10 (`net10.0-windows`) | | Language | C# / .NET 10 (`net10.0-windows`) |
| Build | Dalamud.NET.Sdk 15.0.0 | | Build | Dalamud.NET.Sdk 15.0.0 |
| UI | Dear ImGui via Dalamud bindings | | UI | Dear ImGui via Dalamud bindings |
| Solver | Raphael (Rust crate, bundled as `raphael_bindings.dll`) | | Solver | Raphael (Rust crate, bundled as `raphael_bindings.dll`) |
| Toolchain | dotnet 10 SDK | | Toolchain | dotnet 10 SDK |
--- ---
## Build ## Install
### From custom repository (recommended, friend-circle install)
> Coming once the release pipeline lands. Once active, point Dalamud at
> the `repo.json` URL from this repository root and `Forgeimizer` shows
> up in the **All Plugins** list.
### From source (dev install)
```bash ```bash
git clone ssh://git@gitea.hellion-forge.cloud:2222/JonKazama-Hellion/Craftimizer.git git clone ssh://git@gitea.hellion-forge.cloud:2222/JonKazama-Hellion/Craftimizer.git
@@ -71,19 +86,42 @@ cd Craftimizer
dotnet build Craftimizer.sln -c Release dotnet build Craftimizer.sln -c Release
``` ```
The plugin DLL plus the manifest land in `Craftimizer/bin/x64/Release/`. Point The plugin DLL plus manifest land in `Craftimizer/bin/x64/Release/`. Point
Dalamud's **Dev Plugin Locations** at that folder (`/xlsettings` Dalamud's **Dev Plugin Locations** at that folder (`/xlsettings`
**Experimental**) to load it as a dev plugin. **Experimental**) to load it as a dev plugin.
### Conflict with upstream Craftimizer
Forgeimizer refuses to load if upstream Craftimizer is also active. Both
plugins hook the same FFXIV `UseAction` and `IsActionHighlighted` paths, and
running them in parallel would corrupt either's state. The Forgeimizer
constructor throws an `InvalidOperationException` with a clear message
pointing at `/xlplugins` if it detects an active Craftimizer install.
Disable upstream Craftimizer in `/xlplugins` before enabling Forgeimizer.
--- ---
## Project Status ## Project Status
**Experimental Hellion fork — personal-use only.** No distribution channel, **Experimental Hellion fork — small-circle use.** Custom repo and release
no custom repo, no release pipeline. This may change if the fork grows beyond pipeline are next on the roadmap. If upstream Craftimizer resumes active
a single-user maintenance build, but for now: clone, build, dev-load. maintenance, Forgeimizer archives and the recommendation will be to switch
back upstream.
If upstream resumes active maintenance, this fork archives. ---
## Slash Commands
All upstream Craftimizer slash commands work unchanged, plus one alias:
| Command | What it does |
| -------------------------------------- | ------------------------------------------------ |
| `/craftimizer` *or* **`/forgeimizer`** | Open the settings window |
| `/crafteditor` *or* `/macroeditor` | Open the crafting macro editor |
| `/craftaction` | Execute the next suggested action in synth helper |
| `/craftretry` | Click "Retry" in the synthesis helper |
| `/craftmacros` *or* `/macrolist` | Open the crafting macros window |
--- ---
@@ -94,8 +132,8 @@ If upstream resumes active maintenance, this fork archives.
- Discord DM: `@j.j_kazama` - Discord DM: `@j.j_kazama`
- Email (business): <kontakt@hellion-media.de> - Email (business): <kontakt@hellion-media.de>
For anything that relates back to upstream Craftimizer or to attribution, see For anything that relates back to upstream Craftimizer or to attribution,
the contact path in [NOTICE.md](NOTICE.md). see the contact path in [NOTICE.md](NOTICE.md).
--- ---
@@ -106,14 +144,14 @@ Copyright details with dual-holder block in [COPYRIGHT](COPYRIGHT). Personal
acknowledgement to the upstream author in [NOTICE.md](NOTICE.md). acknowledgement to the upstream author in [NOTICE.md](NOTICE.md).
© 2023 [Asriel Camora](https://github.com/WorkingRobot) for the original © 2023 [Asriel Camora](https://github.com/WorkingRobot) for the original
Craftimizer plugin. © 2026 Hellion Online Media for the Dalamud SDK 15 Craftimizer plugin. © 2026 Hellion Online Media for the Forgeimizer
fork-maintenance modifications. rebrand and the Dalamud SDK 15 fork-maintenance modifications.
### FFXIV Disclaimer ### FFXIV Disclaimer
FINAL FANTASY XIV © SQUARE ENIX CO., LTD. All rights reserved. Craftimizer FINAL FANTASY XIV © SQUARE ENIX CO., LTD. All rights reserved. Craftimizer
and this fork are unofficial, fan-made plugins and are not affiliated with, and Forgeimizer are unofficial, fan-made plugins and are not affiliated
supported by, sponsored by, or approved by Square Enix. with, supported by, sponsored by, or approved by Square Enix.
--- ---