promotional bannermobile promotional banner

Poison Kit

Poison your weapons, your arrows, and even your spike traps.

File Details

FineCraft-Poison-1.5.3.jar

  • R
  • Mar 7, 2026
  • 802.85 KB
  • 135
  • Early Access

File Name

FineCraft-Poison-1.5.3.jar

Supported Versions

  • Early Access

[1.5.3] - 2026-03-07

Added

  • Tiered poison kits (T0–T3): each poison type (DoT, Instant, Slow) now comes in 4 tiers. Higher tiers deal more damage or longer duration. Kit item IDs follow the Tool_PoisonKit_<Type>_T1/T2/T3 convention (base tier is T0).
  • HUD tier display: the kit HUD shows a colored tier badge (#TierBadge) and an info line (#KitInfoLabel) indicating the active tier. Each tier has a distinct color.
  • Tiered weapon states (T0–T3): 12 new Poisoned* state variants (PoisonedDot_T0–T3, PoisonedInstant_T0–T3, PoisonedSlow_T0–T3) visually reflect the active tier on the weapon model.
  • Tiered poison arrows (T1–T3): 9 new arrow items (Weapon_Arrow_Poison_{Dot|Instant|Slow}_T{1..3}). The arrow selector UI lists all 12 types (T0 + T1/T2/T3). The correct tiered effect is parsed from the arrow item ID and applied on hit.
  • Crossbow — full tiered arrow support: reload, projectile dispatch (FineCraft_Crossbow_Overcharge_Projectile_Launch), inventory condition (FineCraft_Crossbow_Arrow_Inventory_Condition_Overcharge), and gated animation (FineCraft_Crossbow_Primary_Overcharge_Gated) now cover all 12 arrow types (statValues 21–32). Previously only T0 was supported (statValues 21–23).
  • Arrow ground pickup (F key): arrows lying on the ground display a native "Use" interaction. Pressing F picks the arrow up and adds it to inventory. Works for all arrow types (vanilla + FineCraft). Crude poisoned arrows return a plain Weapon_Arrow_Crude (poison is lost on impact by design). Iron arrows return Weapon_Arrow_Iron.

Technical

  • PoisonKitAssetsConfig.resolveByItemId(): maps tiered kit IDs (Tool_PoisonKit_DoT_T2) to their tiered effect IDs (FineCraft_Poison_Dot_T2).
  • PoisonUi.resolvePoisonArrowItemId(): returns the tiered arrow item ID matching the active effect.
  • PoisonUi.resolvePoisonEffectIdFromArrowItemId(): parses _Tn suffix from arrow item IDs to reconstruct the correct tiered effect ID.
  • PoisonVisualStateResolver: maps effect ID to the correct tiered Poisoned* state (e.g. FineCraft_Poison_Dot_T2State.PoisonedDot_T2).
  • PoisonMain.setup(): registers ArrowItemTagComponent ComponentType and instantiates ArrowGroundMarkSystem with injection. Also ensures presence of PickupItemInteraction.DEFAULT_ROOT in the asset store.
  • Quality JSON variants added for all 12 tiered weapon states (Poisoned_{Dot|Instant|Slow}_T{0..3}.json) to prevent "unknown item" errors in the QualityBench plugin.

[1.5.2] - 2026-03-03

Added

  • FC_ArrowType_*.json asset system: arrow types are now defined as individual JSON files in Server/FC/ArrowTypes/. Each file declares itemId, label, markerEffectId, colorKey, isDefault, statValue, and shortbow/crossbow interaction maps. No Java code changes are required to add a new type.
  • ArrowTypeRegistry: new Java class that loads all declared types from index.json at startup, scans dataDir/Server/FC/ArrowTypes/ for third-party extensions, and exposes a register(ArrowTypeDefinition) API for Java plugins.
  • Weapon_Arrow_Iron — shortbow + crossbow: Iron arrows (10 Physical shortbow, vanilla crossbow damage, model Arrow_Iron) are now a first-class bundled type. Assets: FineCraft_Projectile_Config_Arrow_Crossbow_Iron.json, FineCraft_Weapon_Crossbow_Shot_Iron.json.
  • Shortbow patch auto-generation: FineCraft_PoisonArrows_Shortbow_Primary_Shoot_Charge.json is fully generated from FC_ArrowType_*.json definitions at build time.
  • Crossbow reload + dispatch auto-generation: FineCraft_Crossbow_Reload_ItemConsume.json and FineCraft_Crossbow_Standard_Projectile_Launch.json are fully generated from FC_ArrowType_*.json definitions at build time.
  • ADDING_ARROW_TYPES.md rewritten: guide now reflects the data-driven system; third-party integration section updated with Option A (file-drop) + Option B (Java register()).

Removed

  • ArrowSelectConfig.java, ArrowOption.java, arrow_options.json — superseded by ArrowTypeRegistry + FC_ArrowType_*.json.
  • Static FineCraft_PoisonArrows_Shortbow_Primary_Shoot_Charge.json, FineCraft_Crossbow_Reload_ItemConsume.json, FineCraft_Crossbow_Standard_Projectile_Launch.json — now generated.