Infinite Water Generation Exploit via Farm Plots (Vanilla)

Sardaukai shared this bug 6 days ago
Reported

A reproducible exploit has been found in the vanilla game that allows a player to generate an infinite source of water using the standard Farm Plot block. This behavior occurs because the farm plot retains its "watered".

  1. Start a vanilla game (e.g., with the 'Food' option enabled).
  2. Place multiple Farm Plots, one Irrigation System, and a Power Source.
  3. Setup: Disable all blocks except the Power Source. Set the first Farm Plot to On.
  4. Fill the Irrigation System with Ice (to generate water), and fully irrigate the first plot.
  5. Test Start: Once the first plot is full, turn off the Irrigation System.
  6. Turn on the remaining Farm Plots, ensuring their Stockpile option is enabled.
  7. Observed Result: Check the water level at the first plot. No changes occur to the water level, despite the other plots being turned on and potentially requiring water for stockpiling.


EDIT: I also deleted the IrrigationSystem later and get infinity water the FarmPlot.


To prove this, I recorded a short clip demonstrating the issue in a controlled vanilla environment. The link is provided below


https://youtu.be/aKSxFWfTXoo

Replies (2)

photo
1

I also used this code to get sure


[MyEntityComponentDescriptor(typeof(MyObjectBuilder_FunctionalBlock), useEntityUpdate: true)]
 public class StockpileEnforcerLogic : MyGameLogicComponent
 {
     private bool m_isServer;
     IMyFarmPlotLogic _planterComponent;
     IMyResourceStorageComponent _storageComponent;
     public override void Init(MyObjectBuilder_EntityBase objectBuilder)
     {
         base.Init(objectBuilder);
         m_isServer = MyAPIGateway.Multiplayer.IsServer;

         var block = Entity as IMyFunctionalBlock;

         if (block == null)
             return;

         foreach (var component in block.Components)
         {
             _planterComponent = component as IMyFarmPlotLogic;
             if (_planterComponent != null)
                 break;
         }

         foreach (var component in block.Components)
         {
             _storageComponent = component as IMyResourceStorageComponent;
             if (_storageComponent != null)
                 break;
         }

         if (_planterComponent == null)
             return;

         if (m_isServer)
         {
             NeedsUpdate = MyEntityUpdateEnum.EACH_100TH_FRAME;
         }
     }

     public override void UpdateBeforeSimulation100()
     {
         MyLog.Default.WriteLine(Entity.Name + " FilledRatio " + _storageComponent.FilledRatio);
         MyLog.Default.WriteLine(Entity.Name + " ResourceCapacity " + _storageComponent.ResourceCapacity);
     }
 }


Started game, created two farms, an irrigation system and a battery.

105852584650738532 is the first farm I filled with water

74882667097017340 was off.


2025-10-26 01:02:18.723 - Thread: 1 -> 105852584650738532 FilledRatio 0

2025-10-26 01:02:18.723 - Thread: 1 -> 105852584650738532 ResourceCapacity 200

2025-10-26 01:02:18.739 - Thread: 1 -> 74882667097017340 FilledRatio 0

2025-10-26 01:02:18.739 - Thread: 1 -> 74882667097017340 ResourceCapacity 200

2025-10-26 01:02:20.390 - Thread: 1 -> 105852584650738532 FilledRatio 0

2025-10-26 01:02:20.390 - Thread: 1 -> 105852584650738532 ResourceCapacity 200

2025-10-26 01:02:20.407 - Thread: 1 -> 74882667097017340 FilledRatio 0

2025-10-26 01:02:20.407 - Thread: 1 -> 74882667097017340 ResourceCapacity 200

2025-10-26 01:02:22.056 - Thread: 1 -> 105852584650738532 FilledRatio 0.0100000002980232

2025-10-26 01:02:22.056 - Thread: 1 -> 105852584650738532 ResourceCapacity 200

2025-10-26 01:02:22.073 - Thread: 1 -> 74882667097017340 FilledRatio 0

2025-10-26 01:02:22.073 - Thread: 1 -> 74882667097017340 ResourceCapacity 200

2025-10-26 01:02:23.723 - Thread: 1 -> 105852584650738532 FilledRatio 0.0933333361148833

2025-10-26 01:02:23.723 - Thread: 1 -> 105852584650738532 ResourceCapacity 200

2025-10-26 01:02:23.740 - Thread: 1 -> 74882667097017340 FilledRatio 0

2025-10-26 01:02:23.740 - Thread: 1 -> 74882667097017340 ResourceCapacity 200

2025-10-26 01:02:25.389 - Thread: 1 -> 105852584650738532 FilledRatio 0.176666671931743

2025-10-26 01:02:25.389 - Thread: 1 -> 105852584650738532 ResourceCapacity 200

2025-10-26 01:02:25.406 - Thread: 1 -> 74882667097017340 FilledRatio 0

2025-10-26 01:02:25.406 - Thread: 1 -> 74882667097017340 ResourceCapacity 200

2025-10-26 01:02:27.056 - Thread: 1 -> 105852584650738532 FilledRatio 0.260000007748603

2025-10-26 01:02:27.056 - Thread: 1 -> 105852584650738532 ResourceCapacity 200

2025-10-26 01:02:27.073 - Thread: 1 -> 74882667097017340 FilledRatio 0

2025-10-26 01:02:27.073 - Thread: 1 -> 74882667097017340 ResourceCapacity 200

2025-10-26 01:02:28.723 - Thread: 1 -> 105852584650738532 FilledRatio 0.343333343565463

2025-10-26 01:02:28.723 - Thread: 1 -> 105852584650738532 ResourceCapacity 200

2025-10-26 01:02:28.740 - Thread: 1 -> 74882667097017340 FilledRatio 0

2025-10-26 01:02:28.740 - Thread: 1 -> 74882667097017340 ResourceCapacity 200

2025-10-26 01:02:30.390 - Thread: 1 -> 105852584650738532 FilledRatio 0.426666679382322

2025-10-26 01:02:30.390 - Thread: 1 -> 105852584650738532 ResourceCapacity 200

2025-10-26 01:02:30.406 - Thread: 1 -> 74882667097017340 FilledRatio 0

2025-10-26 01:02:30.406 - Thread: 1 -> 74882667097017340 ResourceCapacity 200

2025-10-26 01:02:32.056 - Thread: 1 -> 105852584650738532 FilledRatio 0.510000015199182

2025-10-26 01:02:32.056 - Thread: 1 -> 105852584650738532 ResourceCapacity 200

2025-10-26 01:02:32.073 - Thread: 1 -> 74882667097017340 FilledRatio 0

2025-10-26 01:02:32.073 - Thread: 1 -> 74882667097017340 ResourceCapacity 200

2025-10-26 01:02:33.723 - Thread: 1 -> 105852584650738532 FilledRatio 0.593333351016042

2025-10-26 01:02:33.723 - Thread: 1 -> 105852584650738532 ResourceCapacity 200

2025-10-26 01:02:33.739 - Thread: 1 -> 74882667097017340 FilledRatio 0

2025-10-26 01:02:33.739 - Thread: 1 -> 74882667097017340 ResourceCapacity 200

2025-10-26 01:02:35.389 - Thread: 1 -> 105852584650738532 FilledRatio 0.676666686832902

2025-10-26 01:02:35.389 - Thread: 1 -> 105852584650738532 ResourceCapacity 200

2025-10-26 01:02:35.407 - Thread: 1 -> 74882667097017340 FilledRatio 0

2025-10-26 01:02:35.407 - Thread: 1 -> 74882667097017340 ResourceCapacity 200

2025-10-26 01:02:37.056 - Thread: 1 -> 105852584650738532 FilledRatio 0.760000022649761

2025-10-26 01:02:37.056 - Thread: 1 -> 105852584650738532 ResourceCapacity 200

2025-10-26 01:02:37.073 - Thread: 1 -> 74882667097017340 FilledRatio 0

2025-10-26 01:02:37.073 - Thread: 1 -> 74882667097017340 ResourceCapacity 200

2025-10-26 01:02:38.723 - Thread: 1 -> 105852584650738532 FilledRatio 0.843333358466621

2025-10-26 01:02:38.723 - Thread: 1 -> 105852584650738532 ResourceCapacity 200

2025-10-26 01:02:38.739 - Thread: 1 -> 74882667097017340 FilledRatio 0

2025-10-26 01:02:38.739 - Thread: 1 -> 74882667097017340 ResourceCapacity 200

2025-10-26 01:02:40.390 - Thread: 1 -> 105852584650738532 FilledRatio 0.900000026822086

2025-10-26 01:02:40.390 - Thread: 1 -> 105852584650738532 ResourceCapacity 200

2025-10-26 01:02:40.406 - Thread: 1 -> 74882667097017340 FilledRatio 0

2025-10-26 01:02:40.406 - Thread: 1 -> 74882667097017340 ResourceCapacity 200

2025-10-26 01:02:42.056 - Thread: 1 -> 105852584650738532 FilledRatio 0.900000026822086

2025-10-26 01:02:42.056 - Thread: 1 -> 105852584650738532 ResourceCapacity 200

2025-10-26 01:02:42.073 - Thread: 1 -> 74882667097017340 FilledRatio 0

2025-10-26 01:02:42.073 - Thread: 1 -> 74882667097017340 ResourceCapacity 200


Fill up completed for 105852584650738532 with a max fill rate of 0.900000026822086

I deleted the irrigation system!


The grid consists of two farms, two conveyors, and a battery.

Set Stockpile on at Farm 74882667097017340 to drain water from 105852584650738532


2025-10-26 01:03:05.390 - Thread: 1 -> 105852584650738532 FilledRatio 0.900000026822086

2025-10-26 01:03:05.390 - Thread: 1 -> 105852584650738532 ResourceCapacity 200

2025-10-26 01:03:05.406 - Thread: 1 -> 74882667097017340 FilledRatio 0

2025-10-26 01:03:05.406 - Thread: 1 -> 74882667097017340 ResourceCapacity 200

2025-10-26 01:03:07.057 - Thread: 1 -> 105852584650738532 FilledRatio 0.900000026822086

2025-10-26 01:03:07.057 - Thread: 1 -> 105852584650738532 ResourceCapacity 200

2025-10-26 01:03:07.073 - Thread: 1 -> 74882667097017340 FilledRatio 0.0800000023841858

2025-10-26 01:03:07.073 - Thread: 1 -> 74882667097017340 ResourceCapacity 200

2025-10-26 01:03:08.723 - Thread: 1 -> 105852584650738532 FilledRatio 0.900000026822086

2025-10-26 01:03:08.723 - Thread: 1 -> 105852584650738532 ResourceCapacity 200

2025-10-26 01:03:08.740 - Thread: 1 -> 74882667097017340 FilledRatio 0.163333338201046

2025-10-26 01:03:08.740 - Thread: 1 -> 74882667097017340 ResourceCapacity 200

2025-10-26 01:03:10.389 - Thread: 1 -> 105852584650738532 FilledRatio 0.900000026822086

2025-10-26 01:03:10.389 - Thread: 1 -> 105852584650738532 ResourceCapacity 200

2025-10-26 01:03:10.406 - Thread: 1 -> 74882667097017340 FilledRatio 0.246666674017905

2025-10-26 01:03:10.406 - Thread: 1 -> 74882667097017340 ResourceCapacity 200

2025-10-26 01:03:12.072 - Thread: 1 -> 105852584650738532 FilledRatio 0.900000026822086

2025-10-26 01:03:12.072 - Thread: 1 -> 105852584650738532 ResourceCapacity 200

2025-10-26 01:03:12.089 - Thread: 1 -> 74882667097017340 FilledRatio 0.330833343192934

2025-10-26 01:03:12.089 - Thread: 1 -> 74882667097017340 ResourceCapacity 200

2025-10-26 01:03:13.739 - Thread: 1 -> 105852584650738532 FilledRatio 0.900000026822086

2025-10-26 01:03:13.739 - Thread: 1 -> 105852584650738532 ResourceCapacity 200

2025-10-26 01:03:13.756 - Thread: 1 -> 74882667097017340 FilledRatio 0.414166679009793

2025-10-26 01:03:13.756 - Thread: 1 -> 74882667097017340 ResourceCapacity 200

2025-10-26 01:03:15.406 - Thread: 1 -> 105852584650738532 FilledRatio 0.900000026822086

2025-10-26 01:03:15.406 - Thread: 1 -> 105852584650738532 ResourceCapacity 200

2025-10-26 01:03:15.423 - Thread: 1 -> 74882667097017340 FilledRatio 0.497500014826653

2025-10-26 01:03:15.423 - Thread: 1 -> 74882667097017340 ResourceCapacity 200

2025-10-26 01:03:17.072 - Thread: 1 -> 105852584650738532 FilledRatio 0.900000026822086

2025-10-26 01:03:17.072 - Thread: 1 -> 105852584650738532 ResourceCapacity 200

2025-10-26 01:03:17.089 - Thread: 1 -> 74882667097017340 FilledRatio 0.580833350643513

2025-10-26 01:03:17.089 - Thread: 1 -> 74882667097017340 ResourceCapacity 200

2025-10-26 01:03:18.740 - Thread: 1 -> 105852584650738532 FilledRatio 0.900000026822086

2025-10-26 01:03:18.740 - Thread: 1 -> 105852584650738532 ResourceCapacity 200

2025-10-26 01:03:18.756 - Thread: 1 -> 74882667097017340 FilledRatio 0.664166686460373

2025-10-26 01:03:18.756 - Thread: 1 -> 74882667097017340 ResourceCapacity 200

2025-10-26 01:03:20.406 - Thread: 1 -> 105852584650738532 FilledRatio 0.900000026822086

2025-10-26 01:03:20.406 - Thread: 1 -> 105852584650738532 ResourceCapacity 200

2025-10-26 01:03:20.423 - Thread: 1 -> 74882667097017340 FilledRatio 0.747500022277232

2025-10-26 01:03:20.423 - Thread: 1 -> 74882667097017340 ResourceCapacity 200

2025-10-26 01:03:22.073 - Thread: 1 -> 105852584650738532 FilledRatio 0.900000026822086

2025-10-26 01:03:22.073 - Thread: 1 -> 105852584650738532 ResourceCapacity 200

2025-10-26 01:03:22.090 - Thread: 1 -> 74882667097017340 FilledRatio 0.830833358094092

2025-10-26 01:03:22.090 - Thread: 1 -> 74882667097017340 ResourceCapacity 200

2025-10-26 01:03:23.739 - Thread: 1 -> 105852584650738532 FilledRatio 0.900000026822086

2025-10-26 01:03:23.739 - Thread: 1 -> 105852584650738532 ResourceCapacity 200

2025-10-26 01:03:23.756 - Thread: 1 -> 74882667097017340 FilledRatio 0.900000026822086

2025-10-26 01:03:23.756 - Thread: 1 -> 74882667097017340 ResourceCapacity 200

2025-10-26 01:03:25.405 - Thread: 1 -> 105852584650738532 FilledRatio 0.900000026822086

2025-10-26 01:03:25.405 - Thread: 1 -> 105852584650738532 ResourceCapacity 200

2025-10-26 01:03:25.422 - Thread: 1 -> 74882667097017340 FilledRatio 0.900000026822086

2025-10-26 01:03:25.422 - Thread: 1 -> 74882667097017340 ResourceCapacity 200

2025-10-26 01:03:27.073 - Thread: 1 -> 105852584650738532 FilledRatio 0.900000026822086

2025-10-26 01:03:27.073 - Thread: 1 -> 105852584650738532 ResourceCapacity 200

2025-10-26 01:03:27.089 - Thread: 1 -> 74882667097017340 FilledRatio 0.900000026822086

2025-10-26 01:03:27.090 - Thread: 1 -> 74882667097017340 ResourceCapacity 200


Both farms full, no drain from Farm 105852584650738532

photo
1

Hello Engineer,

Thank you for reaching out to us on the forum regarding this issue and thank you for the comprehensive overview of it.

We’ve created an internal ticket for it.

Kind regards,

Keen Software House: QA Department

Leave a Comment
 
Attach a file