Ships Beign rendered beyond view distance. (some points/thoughts on how to reduce performance impact
I remember, When ships where not rendered or atleast all textures and models where unloaded beyond the render distance of the game and you could not see the ship at all.
Now I find it strange that when I have my view distance set to 15km and i see a signal from 25km away I see a little speck glinstering and if i zoom in I see a very low rendered ship, which should be either unloaded (with only refinery(s) and systems running on a point location if required and the model not loaded at all. Futhermore the inventory's should only update if the refinery(s) are full or near full and if there is a shortage of power and another inventory has for example uranium that can be transferred to the reactor(s). futhermore if there are offline players in cryobays. you could basically unload them and just make the unloaded grid use a equation to determine oxygen use on the grid. also pressured area's do not have to render presurization effects when not even near the station at all. Every station could just be updated every so often for example the system will go and update the stations and ships (as moving or stationairy points) so often. like around 10 minutes and that would only be inventory systems and powerstatus and how much energy for example all solar panels produced and how much is refined the system could also set timers for update's according to it's own calculations. It could calculate according to the speed of the refinery and when power would run out when the ship would need to update it's inventory and it could calculate the average oxygen and solarpower produced by the amount of oxygen farms and solar panels and in which direction they stand for a hill obstructing light so often there could be a way that the system measures this is in front of the solar panel and this can only be so much time a day so i will multiply the total production by an angle offset loss constant (which is determined by angle to the sun all around the day and then it also multiply's by the shadow cast constant from it's own and environmental shadows all around the day (this one is more tricky though).
This would make things look a bit like this if the counter of the grid will determine to update (for solars and farms atleast)
10 (min) * maxsolaroutputPmin * Cangleoffset * Cshadowcast = Amount.UpdateEnergy
then grid will be like this
GridpowerOld + Amount.UpdateEnergy = GridpowerNew
Then for power usage you just take the average amount that will be used and determine how long feul will last asfar as i know you already have scripts for that.
and inventory management should also be easy like this.