Discussion EDDI 2

most of today I have been re writting scripts in EDDI 2 Beta.exe and not long ago you made manual for the Voice Attack abit clearer. I've found even though I don't have EDDI 2 config program running I now have both EDDI 2 Beta.exe and VA responding to events in the log. Have I missed something to disable?

atm I'm finding the EDDI 2.exe slightly easier to script compared with Voice attack but I'd like to switch between them til I know which I'll use more of.

Man I havent been this excited in scripting in a LONG TIME :)
 
most of today I have been re writting scripts in EDDI 2 Beta.exe and not long ago you made manual for the Voice Attack abit clearer. I've found even though I don't have EDDI 2 config program running I now have both EDDI 2 Beta.exe and VA responding to events in the log. Have I missed something to disable?


If the GUI for EDDI isn't up and running then you should only have one response to an event. Otherwise there's a bug somewhere. I'll see what I can find; possibly a monitor thread that isn't being backgrounded correctly.

atm I'm finding the EDDI 2.exe slightly easier to script compared with Voice attack but I'd like to switch between them til I know which I'll use more of.

Man I havent been this excited in scripting in a LONG TIME :)

Using VoiceAttack for more complex scripts was just becoming to painful for me, hence the switch to the separate speech responder with its own scripting language. Add in the fact that you can tweak each script as little or as much as you like to build your own personality (which you can then share if you like) and it's just an easier and more maintainable system.

I'll keep working on both the VoiceAttack and speech responder information, because I can see the benefits in both approaches.
 
If the GUI for EDDI isn't up and running then you should only have one response to an event. Otherwise there's a bug somewhere. I'll see what I can find; possibly a monitor thread that isn't being backgrounded correctly.



Using VoiceAttack for more complex scripts was just becoming to painful for me, hence the switch to the separate speech responder with its own scripting language. Add in the fact that you can tweak each script as little or as much as you like to build your own personality (which you can then share if you like) and it's just an easier and more maintainable system.

I'll keep working on both the VoiceAttack and speech responder information, because I can see the benefits in both approaches.

I'll see if there is anything my end that I can do to pin point leak. I have no idea on this stuff, I'm totally in the dark but I'm loving the results I'm getting.

Yeah I can understand the pain of more complex scripting in VA, kudos to those that can and do complex scripts in VA. I like the logic of the speech responder. Just need to find more examples of what others have done. Would be nice to have a way to easily save my speech responder scripts. I have found the json file of the profiles and saved it to make sure the last few hrs of scripting don't go to waste. After I'm done I'll probably end up turning it off as it will be chatting all the damn time on everything.

Still got the idea of a Engineer's cookbook and inventory but have no idea where to sort the inventory. Basically just want to have allt he engineer's blueprints and inventory of what I currently have so I can just ask what I need for any engineer upgrade and VA tells me what I need or when i collect materials it can tell me if I've got enough for certain blueprints. Someone else probably do something much better than I ever could but I'm enjoying working it out on my own.
 
Weird issue...I'm not sure if this has been going on and I just didn't notice it, or if it is a new issue:

None of the voice responses that call the ((_Speak_)) Meta command are working. All my normal Voice attack speak scripts work fine, but it seems everything that calls out the ((_Speak_)) command are broke. I'm wondering if I lost something in transition to beta3? any thoughts?
 
Weird issue...I'm not sure if this has been going on and I just didn't notice it, or if it is a new issue:

None of the voice responses that call the ((_Speak_)) Meta command are working. All my normal Voice attack speak scripts work fine, but it seems everything that calls out the ((_Speak_)) command are broke. I'm wondering if I lost something in transition to beta3? any thoughts?

The 'say' command has changed, due to some alterations in VoiceAttack. Rather than create a script ending in ' script' it now just needs to be called 'Script', and when calling the VoiceAttack plugin it just needs to use the 'say' context.

This was meant to be in the docs but it was removed accidentally; I'll put it back in.
 
ok a little question here while I'm trying to make my own scripts.

in voice attack I want to say "cargo report" and voice attack reports back on how much cargo I'm carrying but also what I'm carrying. Doesn't look like the cargo variables are updating.

I'm trying to make a VA script that goes me a report on my cargo hold.
Cargo capacity of my ship,
Current cargo I'm carrying,
What I'm carrying and if its illegal/haulage/stolen

I haven't spotted anything in the documents about it from what I can tell. If anyone knows to give me some pointers or where to look?
 
ok a little question here while I'm trying to make my own scripts.

in voice attack I want to say "cargo report" and voice attack reports back on how much cargo I'm carrying but also what I'm carrying. Doesn't look like the cargo variables are updating.

I'm trying to make a VA script that goes me a report on my cargo hold.
Cargo capacity of my ship,
Current cargo I'm carrying,
What I'm carrying and if its illegal/haulage/stolen

I haven't spotted anything in the documents about it from what I can tell. If anyone knows to give me some pointers or where to look?

Unfortunately VoiceAttack doesn't have the ability to handle arrays, so it isn't possible to write this inside VoiceAttack.

What you can do, however, is write it as a script inside the Script Responder and call that from VoiceAttack. Once you've written your Speech Responder script you need to set a variable called 'Script' to the name of the script you set inside the Script Responder and then call the EDDI plugin with the context 'speech'.
 
Unfortunately VoiceAttack doesn't have the ability to handle arrays, so it isn't possible to write this inside VoiceAttack.

What you can do, however, is write it as a script inside the Script Responder and call that from VoiceAttack. Once you've written your Speech Responder script you need to set a variable called 'Script' to the name of the script you set inside the Script Responder and then call the EDDI plugin with the context 'speech'.

Oh man I have no idea on how to do any of that :/ Do any of the existing scripts do anything similar that I could look at to take part?
 
Oh man I have no idea on how to do any of that :/ Do any of the existing scripts do anything similar that I could look at to take part?

Well the first step is writing the script in the speech responder. To do that you need to copy the existing EDDI personality if you haven't already done so, and then create a new script (bottom left button). The script will look something like

Code:
{for cargo in ship.cargo:
    Carrying {cargo.amount} tonnes of {cargo.commodity.name}
}

You should test this in the speech responder before attempting to link this in VoiceAttack. Note that the information will be about your commander in live rather than beta, as the information comes from the companion API and FD only provide this for live.
 
Code:
{for cargo in ship.cargo:
    Carrying {cargo.amount} tonnes of {cargo.commodity.name}
}

You should test this in the speech responder before attempting to link this in VoiceAttack. Note that the information will be about your commander in live rather than beta, as the information comes from the companion API and FD only provide this for live.

well that worked, scared the crap out of me when it spoke though. Now trying to figure out how to get it to read out more than one commodity and how to call it from VA.

p.s. Actually worked that out had to restart EDDI Beta, now just to call it from VA

p.s.s HOLY COW I actually made it work, abit rough but it works >:D

p.s.s.s Only thing is that I can't get it to update if my cargo changes
 
Last edited:
Been having a play with this, it seems awesome (especially after I realised the lack of feedback was my fault for not reading through properly and playing it in release, not the beta!)
Sorry if this has been asked and I've missed it, but does it pull any data on which factions are in a system back? Would be useful if you're trying to avoid one - e.g. for bounty reasons?
 
Been having a play with this, it seems awesome (especially after I realised the lack of feedback was my fault for not reading through properly and playing it in release, not the beta!)
Sorry if this has been asked and I've missed it, but does it pull any data on which factions are in a system back? Would be useful if you're trying to avoid one - e.g. for bounty reasons?

The journal gives us the controlling faction for a system (when entering the system) and the controlling faction for a station (when docking at the station). We also obtain faction information when accepting and completing missions, when fines and bounties are placed upon us, and when we obtain a bounty or combat bond. So depending on what exactly you are trying to do this might be enough information or might not. Bear in mind that most of this information is post-hoc though, so probably not too much use in avoiding situations to begin with.
 
The journal gives us the controlling faction for a system (when entering the system) and the controlling faction for a station (when docking at the station). We also obtain faction information when accepting and completing missions, when fines and bounties are placed upon us, and when we obtain a bounty or combat bond. So depending on what exactly you are trying to do this might be enough information or might not. Bear in mind that most of this information is post-hoc though, so probably not too much use in avoiding situations to begin with.
It looks like the right information at the wrong time - I've had a number of encounters where I've avoided a system due to having a bounty (normally accidentally, I'm not a naughty pirate!) only to get shot at in a neighbouring system because that faction is hiding in there with 1% influence - or more frequently they control a minor outpost.

Thanks anyway.

[Heads off to download the updated version]
 
I find it a bit disconcerting to see EDDI suggest that people should base their applications on theirs for the handling of player log data.

If you are thinking of writing some additional functionality for Elite it might be worth considering using EDDI as the base for your code. It means that you don't have to carry out all of the tedious work of reading log files, formatting them, translating the FD item keys in to sane names, etc. and can instead focus on your own features.

I am not going to base my EliteDMX tool on any other third party tool. The reason is simple: I your tool breaks, it breaks my tool as well. The only benefit would be that I wouldn't have to figure out how to progressively read the player log file, and perhaps how to parse json. Both things that I figured out and had done in 10 minutes. There is simply no need for depending on EDDI just for a little developer convenience.

If reading json from a file is too tedious, then programming a third-party tool is perhaps not something you should do. That JSON file already is a sort of API. Putting another layer inbetween just for the sake of having another layer is not a good idea.
 
I find it a bit disconcerting to see EDDI suggest that people should base their applications on theirs for the handling of player log data.



I am not going to base my EliteDMX tool on any other third party tool. The reason is simple: I your tool breaks, it breaks my tool as well. The only benefit would be that I wouldn't have to figure out how to progressively read the player log file, and perhaps how to parse json. Both things that I figured out and had done in 10 minutes. There is simply no need for depending on EDDI just for a little developer convenience.

If reading json from a file is too tedious, then programming a third-party tool is perhaps not something you should do. That JSON file already is a sort of API. Putting another layer inbetween just for the sake of having another layer is not a good idea.

And you're welcome to not use EDDI, you really are. I'm not attempting to enforce its use on anyone, but EDDI is fully open-source and if someone has a particular use case where they want the data that EDDI provides then it saves them the effort of not just reading and parsing the JSON data, but areas such as translation from FD's internal constants, linking to additional data sources, information from the companion API, integration in to an existing UI, integrated speech services, and more.

It's rare that any code is written without a number of third-party libraries (database access, JSON parsing, network communications etc), I'm just offering up EDDI as a way to allow people to get started quickly if they don't want to go through the tedium of bringing together all of the individual components of information themselves.
 
And you're welcome to not use EDDI, you really are. I'm not attempting to enforce its use on anyone, but EDDI is fully open-source and if someone has a particular use case where they want the data that EDDI provides then it saves them the effort of not just reading and parsing the JSON data, but areas such as translation from FD's internal constants, linking to additional data sources, information from the companion API, integration in to an existing UI, integrated speech services, and more.

It's rare that any code is written without a number of third-party libraries (database access, JSON parsing, network communications etc), I'm just offering up EDDI as a way to allow people to get started quickly if they don't want to go through the tedium of bringing together all of the individual components of information themselves.

I'm a bit curious what you mean with regards to normalization of constants. I was under the impression that the IDs of events and constants are not translated in the player log, is this no longer the case?

Also don't take my disagreement as a personal attack please - I may indeed be a bit too sensitive due to the things happening at my own job, with people making a living creating entirely unneccessary "layers" on top of what's already an API.
Also, I recognize that there may be benefit in making something that actually extends EDDI itself, accessing other data you get from the companion API and such.

I'd simply caution that unless there's a requirement for such functionality, a third party developer may be better off staying independent.
 
I'm a bit curious what you mean with regards to normalization of constants. I was under the impression that the IDs of events and constants are not translated in the player log, is this no longer the case?

Also don't take my disagreement as a personal attack please - I may indeed be a bit too sensitive due to the things happening at my own job, with people making a living creating entirely unneccessary "layers" on top of what's already an API.
Also, I recognize that there may be benefit in making something that actually extends EDDI itself, accessing other data you get from the companion API and such.

I'd simply caution that unless there's a requirement for such functionality, a third party developer may be better off staying independent.

Well yes, it's always a choice as to if to build something yourself or use someone else's.

Regarding items such as translation of constants, there are many features in the journal which can help by being smoothed out. Taking an example, the security level of a given system might be reported as one of the following items:

  • $GAlAXY_MAP_INFO_state_anarchy;
  • $GALAXY_MAP_INFO_state_lawless;
  • $SYSTEM_SECURITY_high;
  • $SYSTEM_SECURITY_low;
  • $SYSTEM_SECURITY_medium;

Complete with little oddments such as the lower-case 'L' in the anarchy state. EDDI translates this information where it is found so that when it comes to being used in scripts the value is a simple "Anarchy/Lawless/High/Medium/Low".

There are many, many examples of this type of thing throughout the journal and the companion API. To give you another one, valid demand levels for commodities are 0, 1, 2, 3 and "". That last one is a real level in an otherwise-numeric value that only shows up when a commodity not normally in demand is in demand for a specific reason (e.g. a community goal).

Anyway, as mentioned people are happy to use EDDI or not as the basis for their own app. It's open-source so if I vanished in a puff of smoke tomorrow they'd be no worse off, but the more people that use it (either playing with it or writing for it) the more corner cases will be covered and the stronger all third party apps will become.
 
I noticed a new version of EDDI: Eddi b2.0.0.b5

I didn't notice any change log or anything though. where I could I see a list of changes/things to tinker with / test?
 
How would I get something like:
"Entered normal space near [planet]. Gravity is [gravity rounded to 1 decimal place] gee."
? I tried round(event.gravity,1), body.gravity, planet.gravity. All returned "zero".
Also TIL: g is "grams" and G is "Gyavarians?"
 
Back
Top Bottom