From 923d421e57fb073100efebcb5bd0e2a0f18d621c Mon Sep 17 00:00:00 2001 From: Jon Kazama Date: Tue, 26 May 2026 20:03:23 +0200 Subject: [PATCH] Rebrand fork to Forgeimizer with Craftimizer conflict detector MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit User-facing rebrand of the Hellion Forge maintenance fork so it installs as a separate Dalamud plugin slot named Forgeimizer and refuses to load in parallel with upstream Craftimizer. Internal namespaces stay as Craftimizer.* — this is a deliberate light-rename so a future upstream merge stays straightforward. Manifest and build: - csproj AssemblyName = Forgeimizer (DLL is now Forgeimizer.dll) - csproj PackageProjectUrl points at the Hellion Gitea - csproj Authors dual-credits Asriel Camora and Hellion Forge - Craftimizer.json renamed to Forgeimizer.json with Name/InternalName/ Punchline/Description/RepoUrl/IconUrl/ImageUrls/Tags updated to Forgeimizer + Hellion-hosted URLs Conflict detector: - New Utils/CraftimizerConflictDetector.cs checks pluginInterface.InstalledPlugins for an active InternalName=="Craftimizer" and throws InvalidOperationException with /xlplugins guidance if found - Plugin.cs constructor calls the detector before Service.Initialize so no Dalamud state is touched on conflict Other user-facing strings: - WindowSystem name "Craftimizer" -> "Forgeimizer" - Settings about-tab header "Craftimizer" -> "Forgeimizer", hyperlink retargeted to the Hellion Gitea repo (upstream attribution stays on the WorkingRobot author line below) - Configuration.MacroMateName default "Craftimizer" -> "Forgeimizer" - /craftimizer slash command gains a /forgeimizer alias (all other upstream commands stay unchanged for muscle-memory compatibility) Docs: - README rewritten with Forgeimizer title, install section, conflict notice, slash command table, dual-holder license footer - COPYRIGHT title and source-code block updated to call out both the rebrand and the SDK 15 migration as Hellion Forge fork maintenance - NOTICE.md direct-word-to-Asriel section now also covers the rebrand scope and the conflict detector language, with explicit invitation to flag anything that does not sit right LICENSE remains unchanged — Asriel Camora's MIT notice is mandatory. Plugin Version stays at 2.9.1.1; this is a rebrand cycle, not a version bump. --- COPYRIGHT | 32 +++-- Craftimizer/Configuration.cs | 2 +- Craftimizer/Craftimizer.csproj | 5 +- Craftimizer/Craftimizer.json | 30 ----- Craftimizer/Forgeimizer.json | 32 +++++ Craftimizer/Plugin.cs | 6 +- .../Utils/CraftimizerConflictDetector.cs | 27 +++++ Craftimizer/Windows/Settings.cs | 4 +- NOTICE.md | 81 ++++++++----- README.md | 112 ++++++++++++------ 10 files changed, 213 insertions(+), 118 deletions(-) delete mode 100644 Craftimizer/Craftimizer.json create mode 100644 Craftimizer/Forgeimizer.json create mode 100644 Craftimizer/Utils/CraftimizerConflictDetector.cs diff --git a/COPYRIGHT b/COPYRIGHT index a078ccd..e0e2310 100644 --- a/COPYRIGHT +++ b/COPYRIGHT @@ -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 @@ -8,15 +8,21 @@ Copyright (c) 2023 Asriel Camora Original author of Craftimizer (https://github.com/WorkingRobot/Craftimizer). The entire architecture, simulator, solver, recipe data layer, 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 - Hellion fork maintenance: Dalamud SDK 14 → 15 migration for the - FFXIV 7.5 / Dalamud 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. + Hellion Forge fork maintenance: + 1. Rebrand to Forgeimizer (AssemblyName, InternalName, plugin + manifest, WindowSystem name, conflict detector, /forgeimizer + slash command alias). + 2. Dalamud SDK 14 → 15 migration for the FFXIV 7.5 / Dalamud + 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 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. Copyright (c) 2023 Asriel Camora - Designer of the Craftimizer plugin icon (icon.png), the embedded - graphics (Craftimizer/Graphics/*.png), and the documentation - screenshots (Images/*.png). Asset reuse follows the MIT Licence - above. + Designer of the original Craftimizer plugin icon (icon.png), the + embedded graphics (Craftimizer/Graphics/*.png), and the + documentation screenshots (Images/*.png). Forgeimizer continues + 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 diff --git a/Craftimizer/Configuration.cs b/Craftimizer/Configuration.cs index 7c18229..88649f9 100644 --- a/Craftimizer/Configuration.cs +++ b/Craftimizer/Configuration.cs @@ -139,7 +139,7 @@ public class MacroCopyConfiguration public int MaxMacroCount { get; set; } = 5; // CopyToMacroMate - public string MacroMateName { get; set; } = "Craftimizer"; + public string MacroMateName { get; set; } = "Forgeimizer"; public string MacroMateParent { get; set; } = string.Empty; // Add /nextmacro [down] diff --git a/Craftimizer/Craftimizer.csproj b/Craftimizer/Craftimizer.csproj index 683e76e..a695fd0 100644 --- a/Craftimizer/Craftimizer.csproj +++ b/Craftimizer/Craftimizer.csproj @@ -1,9 +1,10 @@ - Asriel Camora + Asriel Camora (original); Jon Kazama / Hellion Forge (fork) 2.9.1.1 - https://github.com/WorkingRobot/Craftimizer.git + Forgeimizer + https://gitea.hellion-forge.cloud/JonKazama-Hellion/Craftimizer Debug;Release diff --git a/Craftimizer/Craftimizer.json b/Craftimizer/Craftimizer.json deleted file mode 100644 index 13e662d..0000000 --- a/Craftimizer/Craftimizer.json +++ /dev/null @@ -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" - ] -} diff --git a/Craftimizer/Forgeimizer.json b/Craftimizer/Forgeimizer.json new file mode 100644 index 0000000..356b2c3 --- /dev/null +++ b/Craftimizer/Forgeimizer.json @@ -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" + ] +} diff --git a/Craftimizer/Plugin.cs b/Craftimizer/Plugin.cs index 82550c4..d8a0220 100644 --- a/Craftimizer/Plugin.cs +++ b/Craftimizer/Plugin.cs @@ -37,9 +37,11 @@ public sealed class Plugin : IDalamudPlugin public Plugin(IDalamudPluginInterface pluginInterface) { + CraftimizerConflictDetector.ThrowIfUpstreamLoaded(pluginInterface); + Service.Initialize(this, pluginInterface); - WindowSystem = new("Craftimizer"); + WindowSystem = new("Forgeimizer"); Configuration = Configuration.Load(); IconManager = new(); Hooks = new(); @@ -120,7 +122,7 @@ public sealed class Plugin : IDalamudPlugin public void ExecuteRetrySynthHelper() => SynthHelperWindow.AttemptRetry(); - [Command(name: "/craftimizer", description: "Open the settings window.")] + [Command(name: "/craftimizer", aliases: "/forgeimizer", description: "Open the settings window.")] private void OpenSettingsWindowForced() => OpenSettingsWindow(true); diff --git a/Craftimizer/Utils/CraftimizerConflictDetector.cs b/Craftimizer/Utils/CraftimizerConflictDetector.cs new file mode 100644 index 0000000..b6393d9 --- /dev/null +++ b/Craftimizer/Utils/CraftimizerConflictDetector.cs @@ -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." + ); + } +} diff --git a/Craftimizer/Windows/Settings.cs b/Craftimizer/Windows/Settings.cs index fd2e7a3..69422ef 100644 --- a/Craftimizer/Windows/Settings.cs +++ b/Craftimizer/Windows/Settings.cs @@ -1113,8 +1113,8 @@ public sealed class Settings : Window, IDisposable using (HeaderFont.Push()) { - ImGuiUtils.AlignCentered(ImGui.CalcTextSize("Craftimizer").X); - ImGuiUtils.Hyperlink("Craftimizer", "https://github.com/WorkingRobot/Craftimizer", false); + ImGuiUtils.AlignCentered(ImGui.CalcTextSize("Forgeimizer").X); + ImGuiUtils.Hyperlink("Forgeimizer", "https://gitea.hellion-forge.cloud/JonKazama-Hellion/Craftimizer", false); } using (SubheaderFont.Push()) diff --git a/NOTICE.md b/NOTICE.md index 7f55bef..649efdd 100644 --- a/NOTICE.md +++ b/NOTICE.md @@ -2,41 +2,52 @@ ## Acknowledgements -This Craftimizer fork is built on +Forgeimizer is built on [Craftimizer](https://github.com/WorkingRobot/Craftimizer) by **[Asriel Camora](https://github.com/WorkingRobot)**, who built and maintained the plugin for years. The entire architecture, the crafting simulator, the macro solver, the recipe data layer, the synthesis helper, -and every UI window come from Asriel's work. Without Craftimizer, this -fork would not exist. +and every UI window come from Asriel's work. Without Craftimizer, Forgeimizer +would not exist. -If this fork is useful to you, the credit for that belongs in large -part to Asriel. +If Forgeimizer is useful to you, the credit for that belongs in large part +to Asriel. ## A direct word to Asriel -Hi. I am Jon. I forked Craftimizer because the upstream `main` branch -had not received an update past FFXIV 7.4, and I wanted a working -crafting plugin for personal use that still loads on the current Dalamud -API. This is not a "do it better" fork. The opposite is true. I would -have happily kept using upstream if it had stayed current. +Hi. I am Jon. I forked Craftimizer because the upstream `main` branch had +not received an update past FFXIV 7.4, and I wanted a working crafting +plugin for personal use that still loads on the current Dalamud API. This +is not a "do it better" fork. The opposite is true. I would have happily +kept using upstream if it had stayed current. -What this fork adds is purely a Dalamud SDK 14 → 15 migration cycle. -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. +What this fork adds is purely: -If you pick Craftimizer back up and ship an upstream SDK 15 update, this -fork folds back into a pure mirror and the recommendation will be to -switch back to your build. +1. A Dalamud SDK 14 → 15 migration cycle. 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. +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 -with — attribution, naming, anything else — please reach out and I will -fix it. Genuinely. +with — attribution, the `Forgeimizer` naming, the conflict detector +language, anything else — please reach out and I will fix it. Genuinely. ## 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 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 -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 @@ -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 to land it would sit open indefinitely and create the wrong impression that the change has been reviewed. If upstream becomes active again and -wants the migration, the change set is small enough (+23 / -19 lines, -seven files) to merge by hand in minutes. +wants the migration, the change set is small enough (the SDK 15 patch is ++23 / −19 lines across seven files; the rebrand is roughly a dozen lines +on top) to merge by hand in minutes. ## Maintainer contact -If something in this fork causes problems, especially if it relates back -to upstream Craftimizer or to attribution: +If something in Forgeimizer causes problems, especially if it relates +back to upstream Craftimizer or to attribution: - **Gitea 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 -"Craftimizer" is the name Asriel chose for the upstream plugin. This -fork keeps the name as a reference to the origin and does not rebrand -the user-facing identity. The Hellion brand is mine. +"Craftimizer" is the name Asriel chose for the upstream plugin. The +Forgeimizer rebrand keeps Craftimizer prominently named in the manifest +description, the about-tab attribution, this NOTICE, and the COPYRIGHT +block, so the fork relationship is unambiguous. The Hellion brand is +mine. --- diff --git a/README.md b/README.md index 9fe055b..f826449 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Craftimizer (Hellion Fork) +# Forgeimizer [![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) @@ -10,60 +10,75 @@ Hellion Forge

-**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 [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 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 -cycle that gets it back on its feet for personal and friend-circle use. No -features added, no design changes, no behavior departures from upstream. If -Asriel ships an official SDK 15 update upstream, this fork folds back into a -pure mirror and the recommendation will be to switch back. +early 2026, the plugin stopped loading. Forgeimizer is a narrow +API-compatibility cycle that gets the crafting plugin back on its feet for +personal and friend-circle use. No features added, no design changes, no +behavior departures from upstream. If Asriel ships an official SDK 15 update +upstream, Forgeimizer folds back into a pure mirror and the recommendation +will be to switch back. ## Acknowledgements -Every line of crafting logic, every solver heuristic, the entire simulator, the -recipe data layer, the synthesis hooks, and all UI windows are -**[Asriel Camora](https://github.com/WorkingRobot)**'s work. This fork only -unblocks the API path. Full acknowledgement in [NOTICE.md](NOTICE.md). +Every line of crafting logic, every solver heuristic, the entire simulator, +the recipe data layer, the synthesis hooks, and all UI windows are +**[Asriel Camora](https://github.com/WorkingRobot)**'s work. Forgeimizer only +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 -[Hellion Online Media](https://hellion-media.de). +Forgeimizer is maintained under **Hellion Forge**, the modding and plugin +line of [Hellion Online Media](https://hellion-media.de). --- ## 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 API Level | 14 (manifest unset, packager-inferred) | **15** (packager-set) | +| Dalamud API Level | 14 | **15** | | `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 | | `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 -intentionally minimal so a future upstream merge stays trivial. +Internal namespaces (`Craftimizer.*`) are intentionally left alone. This is a +deliberate light-rename so a future upstream merge stays simple. --- ## Tech Stack -| Category | Technology | -| ---------- | ----------------------------------------------------- | -| Platform | Dalamud Plugin (API Level 15) | -| Language | C# / .NET 10 (`net10.0-windows`) | -| Build | Dalamud.NET.Sdk 15.0.0 | -| UI | Dear ImGui via Dalamud bindings | +| Category | Technology | +| ---------- | ------------------------------------------------------- | +| Platform | Dalamud Plugin (API Level 15) | +| Language | C# / .NET 10 (`net10.0-windows`) | +| Build | Dalamud.NET.Sdk 15.0.0 | +| UI | Dear ImGui via Dalamud bindings | | 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 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 ``` -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` → **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 -**Experimental Hellion fork — personal-use only.** No distribution channel, -no custom repo, no release pipeline. This may change if the fork grows beyond -a single-user maintenance build, but for now: clone, build, dev-load. +**Experimental Hellion fork — small-circle use.** Custom repo and release +pipeline are next on the roadmap. If upstream Craftimizer resumes active +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` - Email (business): -For anything that relates back to upstream Craftimizer or to attribution, see -the contact path in [NOTICE.md](NOTICE.md). +For anything that relates back to upstream Craftimizer or to attribution, +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). © 2023 [Asriel Camora](https://github.com/WorkingRobot) for the original -Craftimizer plugin. © 2026 Hellion Online Media for the Dalamud SDK 15 -fork-maintenance modifications. +Craftimizer plugin. © 2026 Hellion Online Media for the Forgeimizer +rebrand and the Dalamud SDK 15 fork-maintenance modifications. ### FFXIV Disclaimer FINAL FANTASY XIV © SQUARE ENIX CO., LTD. All rights reserved. Craftimizer -and this fork are unofficial, fan-made plugins and are not affiliated with, -supported by, sponsored by, or approved by Square Enix. +and Forgeimizer are unofficial, fan-made plugins and are not affiliated +with, supported by, sponsored by, or approved by Square Enix. ---