In-Development EDMC Colonisation Plugin

Plugin for EDMC that helps you track commodities required for colonisation effort.

Plugin is under development.

Since we don't have any Journal logs about Trailblazers Update some tricks was required. Currently, if ship cargo magically disappears when ship is docked in Construction Site it is consider as delivered. All colonisation efforts needs to be manually added in settings.


docked.png


not-bind.png


and settings - much to do here:
settings.png


Features:
  • Track colonisation effort progress
  • Provide list of needed commodities to buy
  • Track FC cargo
TODO:
  • Update construction requirements after Trailblazers Update 1
  • Fix bugs
  • Add new bugs
  • ... much more
Github: https://github.com/karolnowacki/edmc-colonisation-plugin

Any comments or suggestions are most welcome.

Changes:
2025-03-07: add settings editor
 
Last edited:
Loving the tool so far. I'm curious about the Fleet Carrier updating though. It doesn't seem to be working very reliably - maybe updating once an hour? Is there a trick to getting it to update more often?
 
Loving the tool so far. I'm curious about the Fleet Carrier updating though. It doesn't seem to be working very reliably - maybe updating once an hour? Is there a trick to getting it to update more often?
you, I've also notice that. That's why I've added local cache for FC in last commit. Carrier should be kept in sync based on CargoTransfer events. In case CarrierBuy event, if Fleet Cartier CAPI queries are enabled in setting should be updated from CAPI but I haven't tested it yet.
 
Can you build this as a standalone tool? Or maybe a plugin for ED Discovery or help Razzafrag with ED CoPilot. As much as I enjoy 3rd party tools, EDMC's interface sucks. The vertical and straight down only nature makes it impossible to have more than 1 or 2 plugins enabled.
 
you, I've also notice that. That's why I've added local cache for FC in last commit. Carrier should be kept in sync based on CargoTransfer events. In case CarrierBuy event, if Fleet Cartier CAPI queries are enabled in setting should be updated from CAPI but I haven't tested it yet.
Hmm... I set this up yesterday, so not sure the local cache feature is working (or at least not for me) ;-). Looking at the code it seemed to be there, so not sure what the issue is. I'll re-download the latest GitHub version in case and let you know. Thanks again!
 
So, after some testing it looked like the "CargoTransfer" event was never being called. I was able to get it working (hopefully: tests pending) with this:

Python:
        # if entry['event'] == "CargoTransfer":
        #     for t in entry['Transfers']:   
        #         if t['Direction'] == "toship":
        #             self.addCargo(t['Type'], t['Count'])
        #             self.removeCarrier(t['Type'], t['Count'])
        #         if t['Direction'] == "tocarrier":
        #             self.removeCargo(t['Type'], t['Count'])
        #             self.addCarrier(t['Type'], t['Count'])
        #     self.updateDisplay()

        if entry['event'] == "MarketSell":
            cargo = state['Cargo'].copy()
            if state['StationType'] == "FleetCarrier":
                for commodity, qty in self.cargo.items():
                    inCargo = cargo.get(commodity, 0)
                    if qty > inCargo:
                        self.addCarrier(commodity, qty-inCargo)
            self.cargo = cargo
            self.updateDisplay()
            self.save()

        if entry['event'] == "MarketBuy":
            cargo = state['Cargo'].copy()
            if state['StationType'] == "FleetCarrier":
                for commodity, qty in self.cargo.items():
                    inCargo = cargo.get(commodity, 0)
                    if qty > inCargo:
                        self.removeCarrier(commodity, qty-inCargo)
            self.cargo = cargo
            self.updateDisplay()
            self.save()
 
Oh... I see. CargoTransfer is emitted when you are using this:
Screenshot 2025-03-12 085541.png


I see good idea above, just it's need to make sure you buy/sell to correct FC, not any. Will add this feature thanks!
 
Hmm, I have never used that screen before (and didn't even know it existed). :)

Glad I could help. Before you commit anything to GitHub, I'd test that 'MarketBuy' function I have in that example code though. I suspect it's not correct and I've not tested it yet.
 
What if you need x-amount of material (let say CMM's) and hauled x-amount into your carrier and after jump to your system you deliverd x-amount that was in your carrier to the construction but you still need to haul a x-amount of CMM's.
Does it keep also track of that?
 
Last edited:
What if you need x-amount of material (let say CMM's) and hauled x-amount into your carrier and after jump to your system you deliverd x-amount that was in your carrier to the construction but you still need to haul a x-amount of CMM's.
Does it keep also track of that?
Yes, Cargo, Fleet Carrier Cargo and what, how many and where (in case of more then one construction) is tracked independently.
 
Update: so I extract this FC cache to separate class (single responsibility principle) and implement handling this MarketBuy/MarketSell events.
 
Can you build this as a standalone tool? Or maybe a plugin for ED Discovery or help Razzafrag with ED CoPilot. As much as I enjoy 3rd party tools, EDMC's interface sucks. The vertical and straight down only nature makes it impossible to have more than 1 or 2 plugins enabled.
Ok, I will try to answer.
  • about standalone application: well I'm not going to reinvent the wheel, because create this boilerplate which is provided by EDMC will take ages to implement and maintain. This is not the purpose of this plugin which was created out of necessity.
  • ED Discovery, I have no idea if it is possible to create plugins there, and if yes, it will required some dll injecting which is simply out of my skills.
  • ED CoPilot, well it is closed software. EULA simple forbid "Edit, alter, modify, adapt, translate or otherwise change the whole or any part of the Application....". For me this is not a free software. I won't touch it.
Nevertheless, I am convinced that both ED Discovery and ED CoPilot will implement similar functionalities sooner or later, probably when in Journal Log we will get events related to colonisation.
 
Just a head's up Kajoj,

The current version seems to changing the fleet carrier value when you sell cargo to the construction site which messes up the 'Need' category totals.

EDIT: Hmm, it seemed to be working correctly the next time I sold to the construction site.. maybe something was up with pulling down data from Funcom shrugs
 
Last edited:
Hello @kajoj , there are actually still CMDRs that don't have an FC :oops:. I am still such an ancient monster ;).
Can you also modify your tool for non-FC owners? :unsure:
 
Hello @kajoj , there are actually still CMDRs that don't have an FC :oops:. I am still such an ancient monster ;).
Can you also modify your tool for non-FC owners? :unsure:
what changes would you expect? Are there any bugs due to the lack of FC? The plugin should work even if you don't use FC. If you encounter any bugs, please share them.
 
Hello @kajoj, thank you for your reply and the tip. I was confused by the broad “Load FC data” button in the settings.
Yes of course, you can also use the tool without FC.
Unfortunately I had to realize that it doesn't work properly, sorry, maybe I'm doing something wrong.
I entered the construction project and the remaining materials (I had already supplied some) in the settings.
In the view, the product was also displayed with the color green (enough for the project for this product, it was aluminum) loaded.
After delivery, however, the list under “Need” still shows the quantity supposedly required. Something still seems to be wrong. :unsure:
 
Back
Top Bottom