[TOOL] Empyrion Playfield Designer v2.43.0 EXP (Empyrion V1.11.x compatible)

Discussion in 'Planets & Playfields' started by jmcburn, May 5, 2018.

  1. jmcburn

    jmcburn Rear Admiral

    Joined:
    Jan 15, 2017
    Messages:
    1,113
    Likes Received:
    1,759
    UPDATE (v1.60.2 b1746) with EXP 9.2.0 support

    CHANGES:

    • added EPBDetails Browser also to FixedPOIs
    • added HudDistance property to POI Properties
    • changed: removed 'None' from all properties except Faction properties, as those should be the only ones using 'None' IIRC. If you encounter a property that still needs 'None' as value, let me know.
    DOWNLOAD LINK:
    https://www.dropbox.com/s/44f0x57wtdly4jf/EPD_v1602b1746_public.zip?dl=0

    IMPORTANT:
    If somehow EPD crashes during EPB (re)import, please let me know and upload epd.log renamed to .txt here, so I can see, which blueprints still have issues.
    If you can find the bluprint name in the log that causes the issues, you can upload that as well here. Otherwise I may ask you for the blueprint after I checked the log.

    /jmc
     
    #441
    Last edited: Jan 12, 2019
    Quarior, Monroe, ravien_ff and 2 others like this.
  2. piddlefoot

    piddlefoot Rear Admiral

    Joined:
    Mar 4, 2015
    Messages:
    1,849
    Likes Received:
    1,615
    Love your work jmcburn, outstanding effort on this project, lots of us appreciate it.
     
    #442
    ravien_ff, jmcburn and Monroe like this.
  3. jmcburn

    jmcburn Rear Admiral

    Joined:
    Jan 15, 2017
    Messages:
    1,113
    Likes Received:
    1,759
    Thanks, appreciate it. :)

    /jmc
     
    #443
    ravien_ff likes this.
  4. Fenra369

    Fenra369 Commander

    Joined:
    Apr 5, 2016
    Messages:
    340
    Likes Received:
    139
    It's a decent tool, but there is significant room for improvement.

    When I spend the time trying to use this, there was some concern over anytime I opened a file, it would "set values to default". For someone using this tool, it's unknown what exactly would this tool do here and how I can disable it from doing so. I notice that for example, it would add things I have blank (such as start inventory) to silly values like 1 crushed rock.

    In addition, repeated use of the tool in a playfield yaml seems to slowly degrade and harm it to a point where it becomes corrupted. While a backup helps, it would wise for the tool to only touch values it actually needs to touch (i.e. the end users input). If a value is empty that's ok; the tool could point it out in preflight as a warning instead of an error.

    When setting a structure start for player spawn, it would be helpful for the dropdown to list existing POIs here, instead of prefabs, since the POI name is what actually matters for this feature to work.
     
    #444
  5. jmcburn

    jmcburn Rear Admiral

    Joined:
    Jan 15, 2017
    Messages:
    1,113
    Likes Received:
    1,759
    Thanks for your feedback.

    No doubt in that. :D

    Some background:
    Given the decreasing time to code I have since I started this project, I try to fix and add as much as I can. The problem is that EPD was designed to me beeing able to quickly react on any playfield changes during alpha stage. So most of the code relies on code-reflection and standardized UI modules that are loaded, arranged and displayed automatically based on the playfield class. This approach has pros and cons.

    Pros:
    - Very fast and simple way to react to playfield changes, as long as they are 'standardized' properties.
    - Very easy and fast way to change UI, as there are just about 15-20 different UI modules that are used for all properties.

    Cons:
    - Properties that rely on eachother are hard to do (alhough I implemented already a lot of methods to do this)
    - Any kind of condition can make the code really complex and maybe break the code for other properties using the same module.

    So the plan was to rebuild EPD completely in V2.0 with todays knowledge a more fixed approach, when Empyrions Alpha phase is nearing it's completion. I started just before A8.0 arrived and everything regarding V2.0 was thrown overboard. So as long as Empyrion is in this phase, any rebuilding is possibly lost work, as I have no idea, where this is all heading.
    Understanding that, there are some limitations in EPDs 'dynamic' code that prevent some convenience features (without using tremendous effort), so I hope you understand that not all wishes are doable at the moment.


    It simply means that the currently open playfield, if not saved, will be lost and then a new playfield will generated or loaded. There are some default values set, but only if you create a new playfield instead of opening. When you open a playfield, everything should be read from file. If not, that's a bug.

    Regarding the crushed rocks:
    When the devs introduced playeritems I found out that leaving some of the difficulty groups in playeritems list empty led to a COQ. Because the game expected 3 (later 4 - FreshStart) groups of items, and in the playfield there was no tag defining the 3/4 different groups by name (like FreshStart nowadays). So if only one group of items was set, the game did not know, which one it was - easy, medium or hard. So we discussed this here and we decided it would be best to use 1 piece of crushed rock for each group, if not set up properly. I can gladly remove the crushed rock, if it works now, but I doubt it does, because the game still does not know, which group was meant, if only one is set up.


    That one concerns me a little. That should in no way happen. How did you notice that, resp. what happens exactly? I always import the complete playfield and on saving I generate a new playfield. So there is no leftover part that could degrade over time. If you didn't change anything, the outcome should in any case be exactly the same.
    The only thing that COULD happen is, if there was a new property introduced I haven't implemented yet. Then EPD won't import it, as there is no corresponding object in EPDs playfield class and that value would be lost on saving. But that's a very rare edge case.

    Only writing and editing modified parts would have been a possibility, but only if I wrote my own YAML parser from scratch, but I decided to use the same parser as empyrion does to read the files to keep it most compatible. But with that the only really stable way is to write the whole playfield object at once -> so 'fresh playfield' on every save is the only way doable ATM, I'm afraid.
    And the 'hand-written' yamls that come with Empyrion don't have the same indentations as the ones I can generate and the parser does not allow to customize that, so I need to replace all code in the original playfield.yamls that come with the game. Otherwise they would become corrupted. Thus the backups instead of partial creation/editing of existing files.


    I will try to find a solution here to show only POIs in use. Haven't extensively used that feature before, so, that only works with FixedPOIs I'm guessing, because otherwise the game would not know in which to spawn you, right?

    /jmc
     
    #445
    Last edited: Jan 13, 2019
  6. ravien_ff

    ravien_ff Rear Admiral

    Joined:
    Oct 22, 2017
    Messages:
    6,395
    Likes Received:
    12,004
    Player start works on random POIs, just make sure to only set up 1 of that POI group on your playfield. I don't know what happens if there's more than 1 of the same POI and you set it as a player start, haven't tested that yet. :D
     
    #446
    jmcburn likes this.
  7. Fenra369

    Fenra369 Commander

    Joined:
    Apr 5, 2016
    Messages:
    340
    Likes Received:
    139
    For sure! Having this tool is quicker than me trying to tweak files in notepad++, so it's better than nothing.


    I can understand if the playeritem start needs to populated for survival, but currently it does this for creative starts too, which I don't think that needs to happen (default creative starts don't have anything in inventory). I also think i noticed it overwriting playerstart stuff that's set by default in normal survival scenarios.




    This is hard to really track, as I was making new scenarios several times over the weekend, but some things I noticed were:
    • preview pictures not working
    • playfield descriptions not showing
    • seed stuff showing (when it's a static scenario)
    other than that I think I ended up creating the other issues over time.

    Right, because as it stands now I end up having to manually add the POIs I create in here. note that if you do add the POIs, a guy posted that the best way to do so (found in another post) is to type in the name of the POI (not prefab name) with double quotes. I couldn't think of a prefab that worked for orbit stuff so I made my own, still didn't show up in the prefab stuff even after I told the app to repopulate it's prefab list. I think the list for structure start is different than the list of prefabs to select.
     
    #447
  8. ravien_ff

    ravien_ff Rear Admiral

    Joined:
    Oct 22, 2017
    Messages:
    6,395
    Likes Received:
    12,004
    I'm not sure that has to do with EPD.

    Preview pictures for starting planets in custom scenarios don't work (at least not that I've been able to get working).
    The sector map changed recently: planet and orbit info doesn't show up in the same place that it used to.
    Seed has always shown up. Static scenarios still use the seed to place random POIs and ore deposits and you can change the seed used at game start.
     
    #448
  9. Fenra369

    Fenra369 Commander

    Joined:
    Apr 5, 2016
    Messages:
    340
    Likes Received:
    139
    Okay, good to know, is there a way to get preview pictures working for MP servers at all? PM me if you know
     
    #449
  10. Taelyn

    Taelyn Guest

    No

    U cant add custom pictures for MP not for the PDA not for Planets.
    Only possible for SP play
     
    #450
  11. Mia

    Mia Commander

    Joined:
    Jun 7, 2016
    Messages:
    164
    Likes Received:
    66
    Hi, I can't start in Structure (POI) in my Scenario.
    It has worked well yesterday but today after updating to Alpha 9.2 does not work.

    I had created a new scenario in SolarSystemGenerator today after updating.

    I also want to remove the POI and switch to my own POIs but I can't, because I get error message:

    " - PreFlight found Errors: - References: - 'Artifacts' referenced in 'SpawnZones' could not be found (deleted?). - 'AlienTowerSmallStory' referenced in 'SpawnZones' could not be found (deleted?). - 'AlienTowerDMG' referenced in 'SpawnZones' could not be found (deleted?). - 'AbandonedPOI' referenced in 'SpawnZones' could not be found (deleted?). - 'AlienWatchtower' referenced in 'SpawnZones' could not be found (deleted?). - 'CrashedTalosFront' referenced in 'SpawnZones' could not be found (deleted?). - 'CrashedTalosMid' referenced in 'SpawnZones' could not be found (deleted?). - 'CrashedTalosBack' referenced in 'SpawnZones' could not be found (deleted?).
    Pre-flight completed. "
     
    #451
  12. jmcburn

    jmcburn Rear Admiral

    Joined:
    Jan 15, 2017
    Messages:
    1,113
    Likes Received:
    1,759
    As the error states, you also need to change (or remove) the POIs in 'SpawnZones' setup (creatures). There are still the old POI names referenced. That would cause a COQ ingame, so I give a warning, if you forget to change those as well.

    /jmc
     
    #452
    ravien_ff likes this.
  13. Mia

    Mia Commander

    Joined:
    Jun 7, 2016
    Messages:
    164
    Likes Received:
    66
    I had deleted POIs in Spawn Zone and it has worked so I could save.
    But when I start games I get the message: "An internal error occured"
    Besides, I have noticed when I have added POIs to the EPD so they are not in the game.
     
    #453
  14. Monroe

    Monroe Commander

    Joined:
    Nov 20, 2017
    Messages:
    200
    Likes Received:
    184
    Try checking the log files at \Empyrion - Galactic Survival\Logs. Do a search for 'exception' or 'error' and it will sometimes give you a line/column to look at in the .yaml. The console (` key) will give you information on which POIs could not be spawned. That can sometimes be fixed by changing the order of the POIs in the .yaml.
     
    #454
  15. Mia

    Mia Commander

    Joined:
    Jun 7, 2016
    Messages:
    164
    Likes Received:
    66
    Pois is in Yaml. The console does not state anything about the POI I had added.
    In Logs I found: "EXC- System.NullReferenceException: Object reference not set to an instance of an object"
    but I do not understand what is wrong.

    "Unloading 5 Unused Serialized files (Serialized files now loaded: 2)
    15-15:14:19.503 16_14 -EXC- System.NullReferenceException: Object reference not set to an instance of an object
    at Assembly-CSharp.PcitureToken.PublishReference (OutlineProvider ) [0x00000] in <filename unknown>:0
    at Assembly-CSharp.PluginTree`1[Assembly-CSharp.DatabaseSite+DriveEditor].ExitSymbol (XmlFileConverterToolbarHelper ) [0x00000] in <filename unknown>:0
    at Assembly-CSharp.VectorOptionsToolbarHelper.DetachAction (System.Object ) [0x00000] in <filename unknown>:0

    Unloading 20078 unused Assets to reduce memory usage. Loaded Objects now: 258835.
    Total: 551.033998 ms (FindLiveObjects: 15.561539 ms CreateObjectMapping: 23.997229 ms MarkObjects: 385.551875 ms DeleteObjects: 125.922567 ms)

    15-15:14:50.997 16_14 -LOG- Disconnect clicked by user
    15-15:14:51.015 16_14 -LOG- Got disconnected from server: Disconnected
    15-15:14:51.019 16_14 -LOG- Playfield saving and cleaning up
    15-15:14:51.188 16_14 -LOG- Unloading playfield 'Ajaya'
    15-15:14:51.222 16_14 -LOG- Unloading playfield 'Ajaya' done (32ms)
    15-15:14:51.261 16_14 -LOG- Playfield saving and cleaning up done
    Unloading 1 Unused Serialized files (Serialized files now loaded: 2) "

    Unloading 1539 unused Assets to reduce memory usage. Loaded Objects now: 232737.
    Total: 486.669165 ms (FindLiveObjects: 12.058164 ms CreateObjectMapping: 20.087081 ms MarkObjects: 309.052968 ms DeleteObjects: 145.470165 ms)

    15-15:14:54.075 16_14 -LOG- EPD Mod is shutting down
    15-15:14:54.218 16_14 -LOG- OnApplicationQuit
     
    #455
  16. Monroe

    Monroe Commander

    Joined:
    Nov 20, 2017
    Messages:
    200
    Likes Received:
    184
    Man, that doesn't really help us this time. I'm sorry about that. I also noticed that they removed the info on which POIs didn't spawn from the console after this update.

    My only suggestion at this point is to remove all POIs except for the one you're having trouble with and see if it spawns. If it does then it's just the order. If it does not then there is a problem with the POI. I will tell you that 'Object reference not set to an instance of an object' means it can't find something that it is trying to call up. Try putting the .epb file in the 'prefabs' folder of the scenario itself, and not just the games default prefabs folder.
     
    #456
  17. Mia

    Mia Commander

    Joined:
    Jun 7, 2016
    Messages:
    164
    Likes Received:
    66
    Thanks in any case I appreciate your help :). Yesterday worked to add the POI before updating. I think I'm waiting a bit for more patches.
     
    #457
  18. Myrmidon

    Myrmidon Rear Admiral

    Joined:
    Mar 26, 2016
    Messages:
    1,724
    Likes Received:
    2,056
    Are you preparing a new scenario or just testing the new features of EPD for A9?
     
    #458
  19. Mia

    Mia Commander

    Joined:
    Jun 7, 2016
    Messages:
    164
    Likes Received:
    66
    I have been thinking about updating the Conquer scenario to A 9:)
     
    #459
    Myrmidon likes this.
  20. jmcburn

    jmcburn Rear Admiral

    Joined:
    Jan 15, 2017
    Messages:
    1,113
    Likes Received:
    1,759
    Some object you referenced in the playfield wasn't found by the game.
    If the ONLY thing you changed are POIs, then one or more of them haven't been found.
    Did you put them into the right folders?

    I'm not aware of any other new changes to the playfields in the latest game update, which doesn't mean, that it didn't happen. :D
    Just didn't read anything in the accouncements.

    If you like, you can upload the playfield and the terrain.ecf as .txt and I can take a look if I can find something else, but I can't check the POIs, if they're custom.

    But It would be very important to know, what you have changed.
    Maybe you can zip all backups and upload them, if you saved on a regular basis. ;)

    /jmc
     
    #460

Share This Page