Industrial Farming

Industrial Farming 1.0.2

No permission to download
Compatible With:
  1. Oxide
  2. Carbon
Features:

  • Automatically attaches Industrial Adapters and Lights to farming entities.
  • Integrated "Hub" system: Spawns a storage box for Coops and Beehives to manage inputs/outputs.
  • Automated Egg Collection: Moves eggs from Coops to the attached storage box (protecting the hatching slot).
  • Automated Refilling: Moves food into Coops and refills water from jugs placed in the storage box.
  • Automated Honey Collection: Moves honey from Beehives into the storage box.
  • Highly Optimized: Uses a staggered initial scan and batch-processing coroutines to ensure zero impact on server performance.
  • Custom Layouts: Fully configurable offsets and rotations for every supported entity.

Supported Entities by Default:

  • Chicken Coops
  • Beehives
  • Composters
  • Large/Small/Triangle Planters
  • Fridges & Mini Fridges
  • Hitch Troughs
  • Bathtub & Minecart Planters
Developer API :

Industrial Farming features an open API via custom hooks. These hooks are called whenever the plugin performs an automated action. Because these are standard Oxide/Carbon hooks, you do not need to add a [PluginReference] to your code; simply adding the method signature to your plugin is enough to receive the data.

Supported Hooks :

  • OnEggMoved(ChickenCoop coop, Item item, StorageContainer box)
    • Triggered when a produced egg is moved from the coop to the external storage box.
  • OnHoneyMoved(BaseEntity beehive, Item item, StorageContainer box)
    • Triggered when honey is moved from a beehive to the external storage box.
  • OnWaterFilled(ChickenCoop coop, int amount, StorageContainer box)
    • Triggered when water is siphoned from a jug in the storage box into the coop.
  • OnFoodMoved(ChickenCoop coop, Item item, StorageContainer box)
    • Triggered when food is transferred from the storage box into the coop inventory.
Integration Example :

If you want to log these actions in a separate plugin or create a custom UI for farming stats, you can use the hooks like this:

C#:
        #region Debug API (also for testing example for other plugins)
        private void OnEggMoved(ChickenCoop coop , Item item , StorageContainer box)
        {
            if (config.Debug) Puts($"[DEBUG] Moved {item.info.shortname} from Coop {coop.net.ID} to Box {box.net.ID}");
        }

        private void OnHoneyMoved(BaseEntity beehive , Item item , StorageContainer box)
        {
            if (config.Debug) Puts($"[DEBUG] Moved Honey from Beehive {beehive.net.ID} to Box {box.net.ID}");
        }

        private void OnWaterFilled(ChickenCoop coop , int amount , StorageContainer box)
        {
            if (config.Debug) Puts($"[DEBUG] Refilled {amount}ml Water into Coop {coop.net.ID} from Box {box.net.ID}");
        }

        private void OnFoodMoved(ChickenCoop coop , Item item , StorageContainer box)
        {
            if (config.Debug) Puts($"[DEBUG] Moved Food ({item.info.shortname}) into Coop {coop.net.ID} from Box {box.net.ID}");
        }
        #endregion

Configuration :

JSON:
{
  "Prefix": "[IndustrialFarming] ",
  "Debug": false,
  "Plugin Settings": {
    "Scan Interval (Seconds)": 120.0,
    "Item Transfer Delay (Seconds)": 0.1,
    "Chicken Coop Box Skin": 3555732160,
    "Beehive Box Skin": 3438077533,
    "Entities Processed Per Frame": 100
  },
  "Entity Layout Mappings": {
    "chickencoop.deployed": {
      "BoxOffset": {
        "x": 0.7,
        "y": 0.0,
        "z": -1.0
      },
      "AdapterOffset": {
        "x": 0.0,
        "y": 0.55,
        "z": 0.0
      },
      "AdapterRotationEuler": {
        "x": 0.0,
        "y": 0.0,
        "z": 0.0
      },
      "LampOffset": {
        "x": -0.32,
        "y": 1.45,
        "z": -0.56,
        "normalized": {
          "x": -0.201641068,
          "y": 0.9136861,
          "z": -0.352871865
        },
        "magnitude": 1.58697832,
        "sqrMagnitude": 2.5185
      },
      "LampRotationEuler": null
    },
    "beehive.deployed": {
      "BoxOffset": {
        "x": 0.0,
        "y": 0.0,
        "z": 0.0
      },
      "AdapterOffset": {
        "x": 0.0,
        "y": 0.3,
        "z": 0.35
      },
      "AdapterRotationEuler": {
        "x": 90.0,
        "y": 0.0,
        "z": 0.0
      },
      "LampOffset": null,
      "LampRotationEuler": null
    },
    "composter": {
      "BoxOffset": {
        "x": 0.0,
        "y": 0.0,
        "z": 0.0
      },
      "AdapterOffset": {
        "x": 0.0,
        "y": 1.7,
        "z": 0.0
      },
      "AdapterRotationEuler": {
        "x": 0.0,
        "y": 0.0,
        "z": 0.0
      },
      "LampOffset": null,
      "LampRotationEuler": null
    },
    "fridge.deployed": {
      "BoxOffset": {
        "x": 0.0,
        "y": 0.0,
        "z": 0.0
      },
      "AdapterOffset": {
        "x": 0.0,
        "y": 2.0,
        "z": 0.0
      },
      "AdapterRotationEuler": {
        "x": 0.0,
        "y": 0.0,
        "z": 0.0
      },
      "LampOffset": null,
      "LampRotationEuler": null
    },
    "minifridge.deployed": {
      "BoxOffset": {
        "x": 0.0,
        "y": 0.0,
        "z": 0.0
      },
      "AdapterOffset": {
        "x": 0.0,
        "y": 1.055,
        "z": -0.05
      },
      "AdapterRotationEuler": {
        "x": 0.0,
        "y": 0.0,
        "z": 0.0
      },
      "LampOffset": null,
      "LampRotationEuler": null
    },
    "planter.small.deployed": {
      "BoxOffset": {
        "x": 0.0,
        "y": 0.0,
        "z": 0.0
      },
      "AdapterOffset": {
        "x": 0.65,
        "y": 0.3,
        "z": 0.0
      },
      "AdapterRotationEuler": {
        "x": 0.0,
        "y": 0.0,
        "z": 0.0
      },
      "LampOffset": null,
      "LampRotationEuler": null
    },
    "planter.large.deployed": {
      "BoxOffset": {
        "x": 0.0,
        "y": 0.0,
        "z": 0.0
      },
      "AdapterOffset": {
        "x": 0.65,
        "y": 0.3,
        "z": 0.0
      },
      "AdapterRotationEuler": {
        "x": 0.0,
        "y": 0.0,
        "z": 0.0
      },
      "LampOffset": null,
      "LampRotationEuler": null
    },
    "railroadplanter.deployed": {
      "BoxOffset": {
        "x": 0.0,
        "y": 0.0,
        "z": 0.0
      },
      "AdapterOffset": {
        "x": 0.65,
        "y": 0.32,
        "z": 0.0
      },
      "AdapterRotationEuler": {
        "x": 0.0,
        "y": 0.0,
        "z": 0.0
      },
      "LampOffset": null,
      "LampRotationEuler": null
    },
    "bathtub.planter.deployed": {
      "BoxOffset": {
        "x": 0.0,
        "y": 0.0,
        "z": 0.0
      },
      "AdapterOffset": {
        "x": 0.65,
        "y": 0.55,
        "z": 0.0
      },
      "AdapterRotationEuler": {
        "x": 0.0,
        "y": 0.0,
        "z": 0.0
      },
      "LampOffset": null,
      "LampRotationEuler": null
    },
    "minecart.planter.deployed": {
      "BoxOffset": {
        "x": 0.0,
        "y": 0.0,
        "z": 0.0
      },
      "AdapterOffset": {
        "x": 0.0,
        "y": 0.8,
        "z": 0.0
      },
      "AdapterRotationEuler": {
        "x": 0.0,
        "y": 0.0,
        "z": 0.0
      },
      "LampOffset": null,
      "LampRotationEuler": null
    },
    "triangle_railroad_planter.deployed": {
      "BoxOffset": {
        "x": 0.0,
        "y": 0.0,
        "z": 0.0
      },
      "AdapterOffset": {
        "x": 0.3,
        "y": 0.3,
        "z": 0.0
      },
      "AdapterRotationEuler": {
        "x": 0.0,
        "y": 90.0,
        "z": 0.0
      },
      "LampOffset": null,
      "LampRotationEuler": null
    },
    "planter.triangle.deployed": {
      "BoxOffset": {
        "x": 0.0,
        "y": 0.0,
        "z": 0.0
      },
      "AdapterOffset": {
        "x": 0.3,
        "y": 0.3,
        "z": 0.0
      },
      "AdapterRotationEuler": {
        "x": 0.0,
        "y": 90.0,
        "z": 0.0
      },
      "LampOffset": null,
      "LampRotationEuler": null
    },
    "hitchtrough.deployed": {
      "BoxOffset": {
        "x": 0.0,
        "y": 0.0,
        "z": 0.0
      },
      "AdapterOffset": {
        "x": 0.0,
        "y": 0.48,
        "z": 0.32
      },
      "AdapterRotationEuler": {
        "x": 105.0,
        "y": 0.0,
        "z": 0.0
      },
      "LampOffset": {
        "x": 0.0,
        "y": 1.05,
        "z": -0.28,
        "normalized": {
          "x": 0.0,
          "y": 0.9662349,
          "z": -0.257662654
        },
        "magnitude": 1.08669221,
        "sqrMagnitude": 1.18089986
      },
      "LampRotationEuler": {
        "x": -90.0,
        "y": 0.0,
        "z": 0.0,
        "normalized": {
          "x": -1.0,
          "y": 0.0,
          "z": 0.0
        },
        "magnitude": 90.0,
        "sqrMagnitude": 8100.0
      }
    }
  }
}
Author
KrunghCrow
Downloads
18
Views
879
First release
Last update

Ratings

5.00 star(s) 2 ratings

More resources from KrunghCrow

Latest updates

  1. Updated to v 1.0.2

    patched for the march 5th Rust update
  2. Updated to version v1.0.1

    Performance Overhaul: Reduced memory usage by 98% and optimized logic to achieve 0ms idle CPU...

Latest reviews

The Best QOL plugin for my server. Thank you
Brilliant for my PVE server the players love it
Back
Top
CodeForged Cart

CodeForged Cart