Release EDDI Scripts and EDDI enabled VA Commands Thread

Really enjoying the faction gossip that EDDI provides when you jump into a system.
Thought i could use this to help targeting feedback in RES's.
Added these lines below to the default ship targeted script.
{if event.targetlocked && event.subsystem:
{set tsubsystem to event.subsystem}
{if tsubsystem = "Power Distributor" :
{OneOf(" Power Distributor sub system target locked")}.
{OneOf(" Target Power Distributor sub system ")}.
{event.subsystemhealth "percent"}.
{OneOf("percent")}.

}
{if tsubsystem = "Power Plant" :
{OneOf(" Power Plant sub system target locked")}.
}
{if tsubsystem = "FSD" :
{OneOf(" Frame Shift Drive sub system target locked")}.
}
{if tsubsystem = "Shield Generator" :
{OneOf(" Shield Generator sub system target locked")}.
}
{if tsubsystem = "Life Support" :
{OneOf(" Life Support sub system target locked")}.
}
{if tsubsystem = "Shield Booster" :
{OneOf(" Shield Booster sub system target locked")}.
}
{if tsubsystem = "Burst Laser" :
{OneOf(" Burst Laser sub system target locked")}.
}


}

The big question is, I prefer to target subsystems like power distributors all the time.
But have to bounce the Y key to get there. Does EDDI do autokey inputs to ED?
Not seem any info here so I expect not. I am wanting to make a Targeting computer, of sorts.
May be using voice attack to roll the targeting till the preferred module locks??

the basic logic would be

If wanted target is locked set targeting to preferred module
or
roll target sequence to a preferred set, like shield then power, then distributors....etc.

Any thoughts most welcome. Ps. would this be considered a cheat type of macro??
EDDI does not do this directly but it is certainly possible to do with VoiceAttack and I've attached an implementation which does this (originally authored by @Hoodathunk, I believe, who recently passed away 😢).

Small macros are generally considered to be ok, long macros that would allow you to walk away from the game are not. That said, please review the Terms of Use and other official statements if you'd like the official stance.
 

Attachments

Last edited:
EDDI does not do this directly but it is certainly possible to do with VoiceAttack and I've attached an implementation which does this (originally authored by @Hoodathunk, I believe, who recently passed away 😢).

Small macros are generally considered to be ok, long macros that would allow you to walk away from the game are not. That said, please review the Terms of Use and other official statements if you'd like the official stance.
Thanks, Sorry for the loss, condolences to the family.
It's good see that the ideas and spirit of the man can echo through the galaxy for ever.
 
Since most recent patch to ED I am getting multiple errors:

"Object reference not set to an instance of the object"

???
 
Since most recent patch to ED I am getting multiple errors:

"Object reference not set to an instance of the object"

???
Context? I know there's one issue that can be resolved by restarting EDDI (and that will be fixed in the next release) but that issue generally seems to occur only on the first run. Or if you deleted the config data in the %appdata%/EDDI folder.
 
Last edited:
EDDI is really awesome and I have tweaked it a lot to suit my needs.
I found out that there is a variable
Code:
alreadydiscovered
that I could use to tell me in the FSD engaged event if the target system has been discovered already (at least reported to EDSM).

I have tried some code
Code:
        {if reportsystem.alreadydiscovered:
            This system has already been discovered.
        |else:
            You are the first person to discover this system.
        }
but I'm not sure which object to get the alreadydiscovered variable from and if it's a boolean variable.

If I get this to work, I would like to add similar code to Next Jump when you target a system if possible.

Any help? Thanks :)
 
EDDI is really awesome and I have tweaked it a lot to suit my needs.
I found out that there is a variable
Code:
alreadydiscovered
that I could use to tell me in the FSD engaged event if the target system has been discovered already (at least reported to EDSM).

I have tried some code
Code:
        {if reportsystem.alreadydiscovered:
            This system has already been discovered.
        |else:
            You are the first person to discover this system.
        }
but I'm not sure which object to get the alreadydiscovered variable from and if it's a boolean variable.

If I get this to work, I would like to add similar code to Next Jump when you target a system if possible.

Any help? Thanks :)
Looking at the 'Variables' help page, it looks like 'alreadydiscovered' is for bodies only, it's not listed under star systems. Considering its context, I would assume it was a boolean, true or false, but I'm not in game to check at the moment.
 
EDDI is really awesome and I have tweaked it a lot to suit my needs.
I found out that there is a variable
Code:
alreadydiscovered
that I could use to tell me in the FSD engaged event if the target system has been discovered already (at least reported to EDSM).

I have tried some code
Code:
        {if reportsystem.alreadydiscovered:
            This system has already been discovered.
        |else:
            You are the first person to discover this system.
        }
but I'm not sure which object to get the alreadydiscovered variable from and if it's a boolean variable.

If I get this to work, I would like to add similar code to Next Jump when you target a system if possible.

Any help? Thanks :)
OK, I jumped in game to test some things out for you. First, yes it's a boolean, so set to true or false.

Second, try this code to get what you are after: reportsystem.bodies[0].alreadydiscovered. This uses the system data for the bodies, and returns the discovered status of the main star, which should also be the discovered status of the system.

Give it a go and let me know if it works. :)

EDIT: Oh, make sure to add your code after the line {set reportsystem to SystemDetails(event.system)} as this is where reportsystem is set. :)
 
Last edited:
OK, I jumped in game to test some things out for you. First, yes it's a boolean, so set to true or false.

Second, try this code to get what you are after: reportsystem.bodies[0].alreadydiscovered. This uses the system data for the bodies, and returns the discovered status of the main star, which should also be the discovered status of the system.

Give it a go and let me know if it works. :)

EDIT: Oh, make sure to add your code after the line {set reportsystem to SystemDetails(event.system)} as this is where reportsystem is set. :)
That's a clever approach but please allow me to add a bit of additional nuance.

The "alreadydiscovered" value is normally set to true when you scan a body and we learn from the player journal that the body is unknown to Universal Cartographics. In the case of EDSM data, however, the discoverer who reported the body to EDSM may have perished en route or may still be wandering the stars (in either case the discovery would remain unknown to Universal Cartographics). We do not assume a body known to EDSM is also known to Universal Cartographics so we do not set "alreadydiscovered" to true when we retrieve body data from EDSM.

TLDR: Since the default value for the boolean (false) remains until it is changed by a scan entry in your player journal, reportsystem.bodies[0].alreadydiscovered is best used after you have scanned the primary star.

We don't use your journal entries to begin filling in information about the bodies in a system until you jump in and begin scanning so if you are making a query before a jump (i.e. during a "Next jump" or "FSD engaged" event) for a system where system.visits = 0, and if len(system.bodies) > 0, then you can safely conclude that you're benefiting from the work of a prior discoverer via EDSM.
 
Last edited:
Thank you Darkcycle, I wasn't aware of how to use the objects in EDDI. It works now with

Code:
        {if reportsystem.bodies[0].alreadydiscovered:
            This system has already been discovered.
        |else:
            You are the first person to discover this system.
        }
For those looking for the same, I put it in the FSD engaged event where EDDI gives you facts about the destination system during hyperjumps. I put it just after the section where EDDI reports number of visits.

As T'kael notes, it will only report the EDSM data so the actual status might not be correct. Since I use EDSM's control panel to see if # systems discovered first increases, this is an improvement.

Next, I will try to implement it when you target a system, then you can plot a route around the already discovered systems during exploration.
 
Update:

Adding this to the end of the Next jump event will tell you if a target is reported as discovered.
Code:
{set reportsystem to SystemDetails(event.system)}
{if reportsystem.bodies[0].alreadydiscovered:
    Target system has already been discovered.
|else:
    Target system has not been discovered.
}
 
Update:

Adding this to the end of the Next jump event will tell you if a target is reported as discovered.
Code:
{set reportsystem to SystemDetails(event.system)}
{if reportsystem.bodies[0].alreadydiscovered:
    Target system has already been discovered.
|else:
    Target system has not been discovered.
}
@KayJayDK I think you may have misunderstood my comments. @Darkcyde's suggestion is valid after scanning the body but not before (since we don't learn whether a body has already been reported to Universal Cartographics until the scan event is completed).

We can still infer whether a system is known to EDSM during "FSD engaged" or "Next jump" with a script like:
Code:
{set reportsystem to SystemDetails(event.system)}
{if reportsystem.visits = 0 & reportsystem.population = 0:
    {if len(reportsystem.bodies) > 0:
        {_ The system contains body data fetched from EDSM }
        Target system has already been discovered.
    |else:
        {_ The system does not contain body data fetched from EDSM }
        Target system has not been discovered.
    }
}
 
Last edited:
Context? I know there's one issue that can be resolved by restarting EDDI (and that will be fixed in the next release) but that issue generally seems to occur only on the first run. Or if you deleted the config data in the %appdata%/EDDI folder.
Sorry for the delay getting back to this issue.

I was in my DBX collecting raw materials in the SRV.

The following were noted: "Object reference not set to an instance of the object" applies to all.

Recall ship - error on touchdown script
Jumping to another system - Error engaging FSD script
Refueling - fuel reports were not correct, either reporting very low or empty when tank was filled refueling after jump.
Dismmising the ship - "Object reference not set to an instance of the object"
Entering Supercruise - "Object reference not set to an instance of the object"
Error FSD Script
Dropping to normal space

Subsequently I thought maybe changing ships might resolve the problem so I've swapped out of the DBX and I am now using my Krait Phantom. In 2 sessions it appears that the errors have disappeared. I will update if they pop up again, and after I confirm resolution using the Phantom, I will swap back to the DBX to determine if it's an isolated problem with just that specific ship.

HTH - will update as I get more data.

EDIT: No joy. Errors returned after landing and using SRV at the next jump to another system. Fuel reports incorrect again as well.
 
Last edited:
Sorry for the delay getting back to this issue.

I was in my DBX collecting raw materials in the SRV.

The following were noted: "Object reference not set to an instance of the object" applies to all.

Recall ship - error on touchdown script
Jumping to another system - Error engaging FSD script
Refueling - fuel reports were not correct, either reporting very low or empty when tank was filled refueling after jump.
Dismmising the ship - "Object reference not set to an instance of the object"
Entering Supercruise - "Object reference not set to an instance of the object"
Error FSD Script
Dropping to normal space

Subsequently I thought maybe changing ships might resolve the problem so I've swapped out of the DBX and I am now using my Krait Phantom. In 2 sessions it appears that the errors have disappeared. I will update if they pop up again, and after I confirm resolution using the Phantom, I will swap back to the DBX to determine if it's an isolated problem with just that specific ship.

HTH - will update as I get more data.

EDIT: No joy. Errors returned after landing and using SRV at the next jump to another system. Fuel reports incorrect again as well.
Consistent with the ship definition issue that we've already identified previously. Should hopefully be fixed in the next release. In the meantime, if this occurs please give EDDI a restart.
 
Top Bottom