Empyrion - Galactic Survival

Empyrion - Galactic Survival

Not enough ratings
Custom Scenarios for Dummies
By zaphodikus
Version 2 of the 'Gentle Guide to .ECF Files', an updated Custom Scenarios tutorial for everyone. Every 2 weeks we will show you how to build a slightly modified Vanilla Universe that will let you tell your own story. All explained in detail, documented and commented clearly, A.k.a. Open Source.
We will be adding new item recipes, show you how to buff items in the game and change some behaviours. Written for people with no programming background. I am trying to achieve 2 things with this guide.
  1. You to have fun learning a few editing basics, just enough, to make a scenario and share it with friends.
  2. Understand the workings of these files so they stop being a black box. One benefit, is that you are not only able to modify and even repair the box, but you can also be more comfortable about modding/scenarios.
Learn more about the actual Emyprion gameplay mechanics like weapon damage and health-pack effects. AND. make the game infinitely replayable.
   
Award
Favorite
Favorited
Unfavorite
Why (TLDR)
Background
So. I bought this game in 2016 and kinda fell in love. I had mostly played crappy space sims and Minecraft till then (I was a server admin for a while) because there were really very few good sandbox building and survival games until EGS came along. And Minecraft is what got me interested in scripting and modding of a game. Pretty soon I was into Survival games big time, and trying out a number of survival/Crafting games. At around that time Eleon started to leak details of what I always knew was possible. Customizing.

I thought, hey, this will work, and I bought a friend a copy of EGS, and then bought another copy, hopeing for some multiplayer fun. It never caught on for them.

Personal challenge
But the bug had bitten and I wrote my first mod/scenario and never published it. It was just for me. Mainly because whenever my custom scenario broke in a game update I could fix it all on my own time, nobody to push me. Eventually I did publish this scenario in version 1.1.
https://steamproxy-script.pipiskins.com/sharedfiles/filedetails/?id=2337746040
I then got bored fixing it, after it finally broke in version 1.5 , I abandoned it and made an aiming sights reticule mod instead, which also broke after version 1.5. Keeping custom scenarios working is hard.
The core problem is that "modding" which this is not really, requires the game developers to have built an interface that never changes to allow users to plug into. Eleon never really did that. I think time was against them as ever, and when time is tight, features like multiplayer get all the time budget. Added to this, every time a new game feature comes along, the interface or plugin code, needs to deal with user's who expect the interface or plugin behaviour to have not changed. This creates extra work for the programmers. And slows them down more than they want. Besides the future is to move forward in any program, keeping old stuff working is very hard, very. So custom scenarios will break, you have been warned, and it will probably hurt.

Community
There are a few custom scenarios around, some of them are specific to Multiplayer Servers, and to be honest these people have a lot of time sunk. That's because Eleon did not make Custom scenarios easy to build or even to maintain. They take time, and often stop working in bad ways. I know, I was a game server mod and admin once, but I don't want to play multiplayer, I just want to play a more fun scenario and bring my own realism into it.
Target Audience
If you are still reading, and this is you, leave a comment below, so that I know you are following. I'm going to cover some of the basics, but mostly I'm going to be adding to the last scenario building guide I wrote, correcting mistakes in it, and also showing how I reboot and publish my first scenario. Part 1 comes with this cool intro video.
Work in Progress
I will remove this section once done. It's just here to mark my plan out

1. Set starting equipments on player start. Make pod steerable again
1.1 Publish the Example scenario on Steam Workshop
2. Find/write a python script that builds a new scenario, check that it creates a blank scenario and upload blank into github repo
2.1 Write some Python code to make editing the playfield files easier
3. Modify chainsaw power and add nicer ore /raw mats recipes
4. Modify weapons as per old scenario
5. Modify armour as per old scenario (And add "loader" custom splash screens)
6. Tweak engines to balance the new/old models usefully
7. Add advanced tech tree and advanced/alien tech tree levels

will strike-out for each completed step and publish one or two of these every month.

The Story

The Lost Paladin The vast 'kNech galactic empire has colonized and controlled most habitable planets across the galaxy. You are the captain of the high guard, your latest assignment from the emperor is a daunting one—travel to the farthest reaches of the galaxy to hunt down the dangerous, skilled, and lethal assassin who's been taking out government heads. Some outlying planets have begun to feel threatened by the normally peaceful 'kNech and have organized small fleets to stop the empire's advance. Incoming intel has revealed a suspicions facility in deep space. It is analysed, and presently suspected to be an assassin training base. You set out with a small squad to investigate. You must tread carefully. On arrival, the facility is found to be recently deserted. As you prepare to submit an encrypted report over the subspace radio, your lieutenant rushes onto the bridge carrying a clue. It appears to be a scribble on a glass fragment, some Coordinates, suddenly she groans, and faints...
Anyway, that's the back story to the scenario we will be building in this tutorial. I hope you will join me.


The Reboot of Craftable Epics for 1.4
This is the overdue reboot of Craftable Epics for 1.4 and the guide that I wrote at the time.

https://steamproxy-script.pipiskins.com/sharedfiles/filedetails/?id=2337746040 (Only up to version 1.4)
https://steamproxy-script.pipiskins.com/sharedfiles/filedetails/?id=1998063529 (Only up to version 1.0)

If you can read this I've already scratched off the very first step and written up a section for it into the guide. I have 7 sections planned, but pretty sure it's going to grow. So this guide will tutorial you in how to make a custom scenario, but first some background.

The TLDR bit
This bit is mainly for my own benefit. I'm a documentation and details person. Mainly because my brain is like a sieve, I learn a thing and then I forget it. I'm going to start up front with a few credits, which you can pick up at the end too.
@Ravien_ff
@Kassonade
@Khazul
@VulcanTourist
@Xango2000
@Runeshadow

(1) Starting spawn kit and Steerable drop pod
So the first thing I wanted to do with my mod was get the old version 1.4 steerable drop pod behaviour again. The drop pod was changed into a static POI after too many people complained that the pod was rolling down embankments into water, or that the pod was spawning over water or some other gripe. Space is not forgiving. I wanted that element of danger back.
For this one needs to modify the playfield starter planet yaml files. This is no longer settable in the LootGroups.ecf
## New Escape Pod settings: Difficulty Levels
{ +LootGroup Name: EscapePodEasy
Count: all
Item_0: EmergencyRations, param1: 1
Item_1: WaterBottle, param1: 5
Item_2: RadarSuitT1, param1: 1
Item_3: SurvivalTent, param: 1
Item_4: OreScanner, param:1
Item_5: SantaClausHat, param:1
Item_6: SnowmanHead, param:1
A blank Scenario
I'm going to assume everyone has at least scanned my last guide. https://steamproxy-script.pipiskins.com/sharedfiles/filedetails/?id=1998063529 A lot has changed, but a lot has stayed the same. Just keep up, but go back to the old guide for anything I do happen to gloss over. I describe some helpful tools in the old guide, I'm not going to cover them again unless it's specific to a step.

  1. Open this guide in a browser tab. Click this link https://steamproxy-script.pipiskins.com/sharedfiles/filedetails/?id=2122687972 and subscribe. Then close Steam entirely and start Steam again, this will let the workshop item by @ravien_ff download.
  2. Follow all of the steps in that guide:
    1. Copy the folder as instructed
    2. Change the scenario name and cover art as instructed
    3. Delete the contents of your RandomPresets folder, first Copy all the SolarSystemConfig .YAML files from RandomPresets as instructed
    4. Copy the gameoptions.yaml files as instructed
  3. Now, copy Sectors.yaml from /RandomDefault/Sectors/Sectors.yaml into your /Sectors folder . If you don't do this we will not be able to specify exactly which starter planets/playfields we need to edit and will have to edit them all.
  4. Then copy all of the playfields folders from /Content/Playfields into your Playfields folder

At this point you will have a playable "Default" scenario copy with the only changes being your artwork.
  1. Open the sectors.yaml file and make notes now, we want to search for each starter planet and note which template playfield it uses. Akua, Ningues, Skillon and Masperon
    Playfields: # - ['0, 0, 0', Exile, MoonTemperateStarter2,'Human:1', '', '', ''] - ['-5600, -5000, 12600', Akua, [b]MoonTemperateStarter[/b],'Human:1', '', '', ''] - ['12600, -5000, 6000', Ningues, [b]MoonSnowStarter[/b],'Human:1', '', '', ''] - ['-12600, -5000, -6000', Skillon, [b]MoonBarrenStarter[/b],'Human:1', '', '', ''] - ['5600, -5000, -12600', Masperon, [b]MoonAlienStarter[/b],'Human:1', '', '', '']
  2. We are going to open and make the same edits to each of 4 files now.
  3. Find each corresponding folder in your scenario now in your /Playfields/MoonTemperateStarter and /Playfields/MoonSnowStarter , /Playfields/MoonAlienStarter. In each folder will be a file called playfield_static.yaml.
  4. In each file look for a section that reads
    ... FixedPlayerStart: ... - Mode: Survival Spawn: EscapePodLandAtPos #Escape Pod cannot be controlled in that mode ...
    Delete everything in this section below this up to the next object marker
    # ============================================================== # ============================================================== ### Drones DroneBaseSetup:
  5. Change the "Spawn: EscapePodLandAtPos " to "Spawn: EscapePod"
  6. Replace the next bits so that it will look like
    FixedPlayerStart: - Mode: Debug Armor: ArmorLight Pos: [ 0, 147, 0 ] RotY: 160 - Mode: Survival Armor: ArmorLight # Spawn: EscapePodLandAtPos # commented out to restore control # Pos: [0, 70, 0] # commented out to restore control # RotY: 160 # commented out to restore control Spawn: EscapePod # ADDED Pos: [0, -350] # Ningues escape pod start # ADDED # PlayerArmor: ["ArmorLight, None, None, #FreshStart:ArmorLight"] # ADDED but no longer relevant? Items: [ "PowerBar:10, MobileAirCon:1, OxygenGeneratorSmall:1, Bandages:3, AntibioticOintment:2, AntiToxicOintment:2, AntiRadiationOintment:2, SurvivalTool:1, Medikit04:3, Pistol:1, 50Caliber:120", "PowerBar:5, MobileAirCon:1, OxygenGeneratorSmall:1, Bandages:3, AntibioticOintment:1, AntiToxicOintment:1, AntiRadiationOintment:1, SurvivalTool:1, Medikit04:2, Pistol:1, 50Caliber:45", "PowerBar:1, MobileAirCon:1, OxygenGeneratorSmall:1, Bandages:2, AntibioticOintment:1, SurvivalTool:1, Medikit04:1", "#FreshStart: CannedVegetables:1, Bandages:3, AntibioticOintment:1, AntiToxicOintment:1, SurvivalTool:1" ] # ============================================================== # ============================================================== ### Drones DroneBaseSetup:
  7. Edit the line for Pos: [0,-350] to change the start location of the pod in the sky.
    1. MoonSnowStarter/playfield_static.yaml use
      Pos: [0, -350] # Ningues escape pod start
    2. MoonTemperateStarter/playfield_static.yaml use
      Pos: [-500, 100] # Akua pod start # ADDED
    3. MoonBarrenStarter/playfield_static.yaml use
      Pos: [300, -600] # Skillon pod start # ADDED
    4. MoonAlienStarter/playfield_static.yaml use
      Pos: [-300, -200] # Masperon pod start # ADDED

At this point you will have a playable "Default" scenario copy with an escape pod with personal inventory. You may notice now that you can change your inventory for each planet/moon starter, by editing it's template, the playfield_static.yaml file.

That's it for chapter 1. I ran out of time to actually upload a set of files for this stage of the tutorial, but will be pushing them onto the Steam workshop and then sharing them on github during the week.

Before you "publish" a scenario, there are 2 things you need to do
1. Use a file search tool and delete a.. *.raw and *.png files ins the scenario folder
2. Close all open files in the folder AND close the folder entirely. The game will attempt to rename the folder, and it will fail to if you have anything open or a dos prompt even in the folder.

(2) Debugging your scenario
Coming Aug '22

TODO:
  • Share Scenario on Github... So others can see what exactly you changed.
  • This step is super important, when you get stuck or make mistakes
  • How to test your scenario changes
I don't play the game for enough hours to learn all the tricks myself, so some of the debugging tricks I've learned from other folk recently.
Edit the savegame don't start fresh
I used to just edit my scenario, then start a new game every time I wanted to test something. That's a but time wastey.

(3) Modify chainsaw and ores
Coming Sept '22
Modify chainsaw power and add nicer ore /raw mats recipes
(4) Modify weapons
Coming Sept '22

Modify weapons as per old scenario

As a bonus. I'll be showing you how to add "loader" screens into your scenario as well. It turned out a bit harder than I first thought.
(5) Modify armour
Coming Sept '22

Modify armour as per old scenario
(6) Tweak engines
Coming Oct '22

Tweak engines to balance the new/old models usefully.
I've always hated the way the new engine shapes got added, but aside from being slightly bigger, and prettier looking, not much reason to use them in designs where the engines are not actually on show.
(7) Adding a new tech tree
Coming Oct '22

Add advanced tech tree and advanced/alien tech tree levels. Yep I'll be showing you how to add a new tech tree "TAB" to the tech tree browser. And how to edit unlock levels at the same time.
Credits
(todo: tidy this bit up later)

Inspiration from
Calmness and tips from the BitTrip runner @Kassonade
Grumpiness and angry motivation equal only to my own from vulcantourist
Troubleshooting help from the ever shy Twitch_j
Practical suggestions from the level headed @Ravien_ff

# Custom configs scenario https://steamproxy-script.pipiskins.com/sharedfiles/filedetails/?id=2122687972 = by Ravien_ff
# quality of life mod : https://steamproxy-script.pipiskins.com/sharedfiles/filedetails/?id=2327432977 by Hades
# Notepad++ python mod https://steamproxy-script.pipiskins.com/sharedfiles/filedetails/?id=2519835717 by Kishmond
# starscorchers custom scenario steps : https://steamproxy-script.pipiskins.com/sharedfiles/filedetails/?id=707881686 - incomplete
2 Comments
zaphodikus  [author] 29 Sep, 2024 @ 5:58am 
I have honestly not played for almost a year now - the modding scene has moved on a bit in that time. However I'm not killing this guide, because a lot of the settings still work just like they used to do, but other tools to help you save the changes has changed. For example you may want to start using the Homeworld generator tool https://empyrion-homeworld.net/tools/ewcct#loca-page instead of manually editing all files.

You can also check the better maintained guide made by Ravien https://steamproxy-script.pipiskins.com/sharedfiles/filedetails/?id=2122687972 for fresh pointers. But yeah, this guide should still work, but some files may be added or move.
AyeItzCheeks 15 Sep, 2024 @ 5:08am 
Is this all still relevant or is there any update to the info? great guide either way!