1. Wayward Terran Frontier: Zero Falls
  2. News

Wayward Terran Frontier: Zero Falls News

Combat stats and abilities

[h3]Floaty damage numbers[/h3][p]Because armor, shields, and hull can take such different amounts of damage, and because increased bullet damage is a stat that you can collect, I wanted to be able to see how effective my shots were during combat, so I made a proper system for floating combat text. It adds up all the changes to pixel values from a bullet instance, color codes the number based on what you hit so there are different color numbers for hull, armor, shield, and critical hits, it also tells you when a dodge occurs. The numbers are even sticky and animated to look nice.[/p][p]You can of course toggle these on and off in the settings if you are an aesthetics purist and RPG style combat text ruins your immersion.[/p][p][/p][h3]Defensive stat changes[/h3][p]I've done a lot of fiddling with combat stats and RPG elements. First thing I changed was to consolidate some defensive stats and make them more balanced. For instance, stacking percentage decreases in damage taken could allow you to become invincible, which was bad and it was also confusing as to how the stats were multiplying together when you had multiple sources.[/p][p]Damage reduction stats have been refined into these categories:[/p]
  • [p]Shield hardness[/p]
  • [p]Armor hardness[/p]
  • [p]Glancing hardness[/p]
  • [p]Glancing chance[/p]
[p]Glancing blows replaces "everything" hardness with a chance to reduce any incoming damage regardless of what was hit. The amount of damage reduced by glancing follows the same formula as the new stats for shield and armor hardness, and multiplies the reduction with them. The formula makes hardness into an integer statistic that you can get an unlimited amount of and its damage reduction follows a constant increased time to live formula as seen below:[/p][p][/p][p]damage taken = damage dealt * (1 - (armor hardness / (armor hardness + 5000))[/p][p][/p][h3]Critical strikes[/h3][p]For the longest time I have wanted to have a statistic for damage dealers that works like critical strike in literally every RPG. The issue, as it were, is that damage in Wayward Terran Frontier isn't simply calculated as a numeric value, but as a damage map applied to the alpha channel of a group of pixels. Simply numerically increasing the intensity of the map, or applying the map multiple times, has problems because it won't always deal consistent damage and it will rarely be visible to the player. Also dealing a bit more damage to some armor tiles doesn't really feel "critical" so I went back to the drawing board.[/p][p]In every RPG that has "critical" damage, the number representing your damage is typically doubled in order to represent the abstract idea of hitting some critical location when your attack landed. Because most RPG characters don't actually have kidneys simulated inside of them, the damage of a dagger strike is just doubled, and the idea of hitting a vital organ is only theater of the mind. However...ships in Wayward Terran Frontier do have simulated kidneys...or at least they do actually have critical systems inside them that can be damaged. As such I have gone through all of our projectile types and added statistics to them representing how devastating it is for those bullets to get past a ship's armor and cause critical damage.[/p][p]Each bullet type now has:[/p]
  • [p]a number of critical rolls representing how many times the crit chance dice will be rolled[/p]
  • [p]an amount of critical damage representing how much random tile damage will be applied to a critical system if the roll succeeds[/p]
  • [p]a base critical chance representing how likely the shot is to crit without any modification from stats[/p]
[p]Bullets roll their critical dice and apply their critical damage only when hitting the soft hull pixels of a target which are not protected by armor or shields, so you can't simply blow up a ship inside out by having a high crit chance, however you will find that increasing crit chance drastically decreases the amount of time that a ship can be shot once you have pierced its shields and armor. Ships receiving critical strikes to their hull will violently explode as their reactors lose containment from the bullets bouncing around inside. Also this has a great secondary effect of allowing the game to estimate how big of a bullet your ship was hit by which it couldn't do before. This aspect will matter later.[/p][p][/p][h3]Items and abilities (captain skills)[/h3][p]Following the trend of adding more loot and RPG elements I have expanded the inventory paper doll with 10 new slots (minus the nano-aura slot which is now gone)[/p][p][/p][p]The slots on the right are for the artifacts mentioned briefly in the artifact crafting profession. They give stat bonuses to your current ship. These will either be crafted or will drop as loot. Primarily these will be found by fighting the various warlords and their minions that have been seeded across the galaxy.[/p][p]The slots on the left however are for captain skills. This is the most recent thing I've been making. Captain skills are items, and currently the plan is for you to find them out in the world. They come in 3 categories that have formal names but I refer to them as red, yellow, and blue because that's the color of energy resource they use for activating. You can only equip skills from a single category, and you only get 5 slots, so you will have to choose between the skills you manage to find.[/p][p]Red skills have a defensive emphasis. Yellow skills have a damage dealing emphasis. Blue skills have an emphasis on support and battlefield control. They can be activated only from the navigation console, and when you have them equipped you will see a new energy resource bar while piloting your ship.[/p][p]Each energy type has its own mechanics that may be familiar to some of you out of the box, but the hope is to make the play styles as different as possible. Red energy decays over time, but it fills when taking or dealing damage. Yellow energy has a small pool that rapidly regenerates. Blue energy has a large pool that slowly regenerates only after not using energy for a while.[/p][p]Here's the first 2 abilities that came up when I debug created the items for the sake of a screenshot:[/p][p][/p][h3]Development status update[/h3][p]I'm very happy with how world engine is currently generating the game world and I have been play testing and debugging all of the new stories. Population cards are working and have been fine tuned a bit in order to get more reasonable worlds generated. I've got NPC agents running around and generally I have been getting the core features debugged and working the way I like, testing warlord battles and mission boards and everything. Also in play testing I realized I needed to expand the exploration system to make it easier to find stuff that you haven't directly visited yet and so I built an upgrade to the map for tracking nearby sensor pings, and also I implemented maps, which are items you can buy to reveal the...map.[/p][p]I've most recently gotten distracted adding player base building mechanics. I think sandbox mode will probably include an element of being able to build your own base. This started as a wave defense type story with loot on the world map called colony ruins, but people asked for base building and so I'm fleshing it out a bit more. More news on that later unless I forget.[/p]

Development update

[p]I got really distracted by a series of projects and didn't make a blog post about new upcoming features. I plan more of those in the future because I'm not done talking about new things that are already in the engine. However, the projects that have kept me very distracted for the last few weeks are worthy of their own discussion so here's a breakdown of everything I've been doing recently. It all started with...[/p][p]...So I got an art asset for the hangar bay.[/p][h3]Remapped every station[/h3][p]It's nice and big and looks like where you would land your ship in order to have it packed into an item so that you might go and do some shopping. That means I got to spend a good deal of time remapping EVERY SINGLE STATION IN THE ENTIRE GAME. Which was loads of fun. Also created some new stations while I was in there.[/p][p]I've now got all the stations that need to be placed by world generation ready to go. That includes:[/p]
  • [p]Single corp item shops[/p]
  • [p]Mining stations[/p]
  • [p]tier 1 mega mall trade hub station[/p]
  • [p]tier 2 mega mall trade hub stations[/p]
  • [p]university stations[/p]
  • [p]libraries[/p]
  • [p]habitat stations[/p]
  • [p]farming stations[/p]
  • [p]hospitals[/p]
  • [p]factories[/p]
  • [p]military bases[/p]
  • [p]etc.[/p]
[h3]Made shop categories[/h3][p]Having recently remapped every single station asset in the entire game I started thinking about the shipyards and the shops that would sell items in the stations I was mapping, as well as the trade goods that you would buy and sell at the trade depots. This lead me to spend some time making a whole lot of different shipyard and item shop categories tied to various corporations in the game.[/p]
  • [p]Tier 1 ship venders[/p]
  • [p]start station sells specific ships[/p]
  • [p]tier 2 ship venders[/p]
  • [p]faction reputation reward military venders[/p]
  • [p]specialist shops that sell tweaked and tuned ships with remapped interiors[/p]
  • [p]shops that sell turrets[/p]
  • [p]shops that sell consumables[/p]
  • [p]shops that sell tools[/p]
  • [p]shops that sell crafting recipes[/p]
  • [p]etc.[/p]
[p]These shop categories are defined in sqlite database tables with the goal being to make it as easy as possible for mod makers to define their own shops.[/p][h3]World-gen algorithm[/h3][p]I also started thinking about how these shops would be placed into the world and came up with a fancy new system for actually filling world engine with content. if World Engine is a framework for streaming content into the session that is generated by stories, what I needed to make was a system for building those stories. Specifically my system had to solve some as yet unsolved problems like..[/p]
  • [p]what trade items are produced and what trade items are needed?[/p]
  • [p]how many mining stations should exist in a system based on population?[/p]
  • [p]how will mod makers design their own procedural star civilizations using only database fields?[/p]
[p]That last one was the most interesting to me. Basically, I had made some hard-coded stories that would just place shops and mining stations and other items into systems, but what I really wanted was for players to be able to provide the input parameters that would determine how a civilization procedurally generated its space.[/p][p]The system I came up with uses internally a deck of cards and some weighted priorities for different star systems and it basically works like this:[/p][p]First you define which stars will be occupied by your star empire. This means putting some X and Y coordinates into a sqlite database table representing the coordinates of star systems that are owned. At the same time, each star is assigned a priority which is just a number representing how "developed" that star system should be.[/p][p]Next you define a deck of "population" cards. Each card represents a type of population that has a specific effect on a star system's development. For instance a retailer card creates a market district if one does not already exist, and then adds a shop selling specific items. A prospector card sets up a mining district and adds a mining station to it. A settler card colonizes a planet, or raises the population of a planet by 1.[/p][p]The system then plays cards on the systems assigned to the star empire they are assigned to in order to build up those systems with populations and infastructure.[/p][p]These cards also create and consume resources system-wide. So districts know that they have a local desire for certain item types, and star systems have a list of items they are short on or that they produce in abundance, and that allows for procedural trade routes to be created that will send NPC agent trade ships flying around the galaxy.[/p][p]Also (and this is one of the most important point of all this) this system lets me set the prices of trade goods at trade good depots procedurally. I do NOT want to set every price in the galaxy by hand. However I do want you to be able to make a profit by buying trade goods for cheap in one location and selling them for more in another.[/p][h3]Mod support[/h3][p]The cards are defined in a database table as a bunch of string values that are super easy to modify, and the cool thing about cards is that each one defines a name field for their corporation, the asset that population should use, and the shop category it should create. When used by world generation these fields determine what art asset will be placed into the world, and those art assets are also defined in the database, meaning you can just insert your own custom ship and station art, give it a unique name, and assign it to any card.[/p][p]The result is that star empires build up all of their stations and all of their npc agents using assets that come from the world parameters database, and mod makers can define an arbitrary number of world parameter database to be included in world generation.[/p][p]That means that all you need to do is modify some tables in an sqlite database and you can build an entire star empire with custom art assets for every station and ship and the contents of every shop and the ships used by the military and the reputation rewards and the warlords etc.[/p][p]These assets live in the world engine database, meaning the engine supports as much custom content as you can fit on your hard drive. Every asset that gets displayed in a session is loaded in real time from the database and the only constraint on memory or vram is the quantity of stuff spawned into a single session at any given moment. There should be no limit to how big or complex you can make a custom world generation aside from the amount of time world generation will take when building the world.[/p]

Crafting professions

[p]In the previous update that came out a long time ago at this point I added affixes to turrets and allowed them to drop as loot. The idea was to increase the amount of cool stuff that could drop as loot, while also broadening the surface for ship customizations. I also added module components and introduced some new tuning kits, all to accomplish the same.[/p][p]Well I've been playing around with crafting for a while, and with the creation of world engine I realized I could do some pretty cool stuff with it. I wanted a system with a lot of depth where maxxing out a trade skill was really worthwhile, and I also wanted to extend the list of cool things I could drop as loot in order to continue the trend of more ship stat customization and more cool stuff to find.[/p][h3]How it works[/h3][p]Trade skills are named professions, and you have a level representing your skill at crafting in that trade skill. You level up your trade skill by crafting items from that trade which will grant exp depending on their difficulty. You also have a maximum skill at crafting in any particular trade, and this is the part where world engine makes things more interesting. Scattered across all of human civilized space are a series of universities, or trade schools, which offer your character increases to your maximum crafting level in the trade skill specialization of that university. Each university degree becomes subsequently more expensive, and the final one may even involve doing a quest.[/p][p]Travelling the galaxy will now be necessary to become the best crafter, but you will also need to collect recipes. Recipes now drop as loot with procedural affixes on them that modify the difficulty of crafting the recipe. These affixes either increase or decrease the trade skill level required to perform the craft.[/p][p]With this system, very high level recipes that create the best items may not be easy to craft unless you can get your maximum crafting level very high, or find the recipes with an affix on them that makes them easier to craft. However recipes that are easier to craft will also be more expensive requiring increased components required to craft them.[/p][p]I'm really hoping that trade skill recipes make it feel more interesting to find random crafting materials in loot.[/p][h2]Trade Skills[/h2][p]So far I have created 4 trade skills. The beauty of procedural world generation based on stories is that when I make a new trade skill, the world generation automatically populates the galaxy with all of the universities you need to reach max level crafting in that profession. I've been sorting out the different recipes and crafting materials for each trade, and setting up university library stations to sell a set of basic recipes to get you started in a trade skill[/p][h3]Weaponsmithing[/h3][p]Weaponsmithing aims to solve the problem of "I found a cool turret but now I want a matching set" as it has recipes for crafting every turret in the game. Because recipes drop with affixes, I have made weaponsmithing recipes roll affixes that can cause the recipe to add affixes to your turrets when they are crafted. The most difficult to craft recipes will be the ones that produce a high tier turret with guaranteed specific affixes. If you find one of these recipes with affixes that you like, you unlock the ability to craft your favorite turret over and over.[/p][p]Weaponsmithing recipes also include recipes for creating small arms for shooting crew, ammunition, and missiles, as well as some intermediary crafting components needed by other weaponsmithing recipes.[/p][h3]Engineering[/h3][p]Skilled engineers will be the best at stacking up the ship-wide stat multipliers they want by crafting modifications to their ships. All tuning kit types can now drop as recipes with affixes, and the affixes control how many times that tuning kit can be applied to the same ship. Better recipes will allow for better tuning kits which allow for bigger stat multipliers for the stats you want.[/p][p]Engineering recipes also create module components, and tools such as better repair guns and fire extinguishers.[/p][h3]Artificing[/h3][p]Artifacts have been reworked and they are now gear for your character to equip. When you check out your character inventory you will notice you have 5 new item slots:[/p][p][/p][p]Of course if you can equip gear now, there has to be a trade skill for crafting gear. Artificing is all about recovering restoring and re-activating lost ancient alien technology so that it can be used to give combat bonuses to your ship. You can of course also find working artifacts as regular loot, but just as with turrets you are probably going to want loot with special stats and crafting your loot gives you more control over optimizing for exactly the stats that you want.[/p][h3]Smelting[/h3][p]Hey, just because trade skills exist doesn't mean they all have to be interesting right? Turning raw ore into ingots may not be exciting but it is vital skill because you can't build stuff out of rocks. Smelting creates the base metals needed as materials by all other professions, and just like the other professions smelting recipes with affixes can be a lot more efficient and profitable, if you have the skill to craft them.[/p][p][/p][p]So keep an eye out for that ultra rare gold smelting recipe that lets you run the most efficient forge in the galaxy. People are never going to stop needing gold.[/p][h2]Development status[/h2][p]I've recently finished up some changes I wanted to make to ship stats which will be discussed in an upcoming blog. Finishing that I have moved on to integration. I sat down and planned out my changes needed to create a single player sandbox mode with this, and it isn't too much work. I am going to have to design a new screen for world generation parameters so that you can configure your sandbox world, and I need to hook up world engine to a number of locations in the code that do things like generate the contents of sessions. I've also figured out how I want to do workshop support which was important because it will tie into the worldgen screen. I'm not sure I will actually do workshop support before the patch, but its good to have the plan up front so it doesn't require a code overhaul to implement later.[/p]

Status of the Frontier

[p]When I released the last update, I got some direct feedback which was honestly the feedback I was already expecting because I have known this was a problem with the game for a long time and wasn't sure how I wanted to resolve it. The game world was designed from the beginning to lean pretty heavily on procedural generation because I always knew we would have a small team, however I had not initially anticipated it would just be me working on this alone, and the game world doesn't feel sufficiently alive.[/p][p]I want the world to have that "alive and busy" feeling of a space full of neat stuff that is going on all around the player. Without that feeling, exploration isn't interesting and players are trapped in a barren desert of fiddling with ship designs and not experiencing an infinite wayward terran frontier. I have always considered a number of different solutions for the problem, but they all were either too small to really solve the problem, or they were too big for a single developer to finish in a human life time.[/p][p]After the last update it was clear this problem had to be solved next.[/p][p]So after much consideration about my life choices I've decided it is either go big, or go home. I chose to go big. I needed to find a way to make an absolutely massive amount of world and story content, with the absolute minimum amount of developer time. I needed to solve some seriously tough engineering problems.[/p][p]I'm pretty sure I'm at least a little autistic, so below you will find a technical explanation of what I've come up with because I like bullet points. However first a summary:[/p][p]I've been grinding away hard at this problem trying to create procedural world generation that will fill an entire galaxy with stuff. I am planning to tack it onto the game as sandbox mode, i.e. open world mode. No main storyline, you aren't the hero or the protagonist, just gonna plop you down as a noobie space captain in a procedurally generated sandbox open world. The goal of all this is to make that world feel alive and interesting and deep, so that exploring the living dynamic open world can be part of the game. So that's the next content update I am working on (sandbox mode), and it is going to be a big one which is why it is taking a while.[/p][p]In the coming weeks I'll try to do another post with more details about the comprehensive list of upcoming changes, because it isn't just procedural world generation.[/p][p]So lets get on to the technical stuff.[/p][h2]Introducing World Engine[/h2][p]What do we do in computer programming when we have a small amount of time to process things, but there are an arbitrary number of them and they need to interact with each other? We build a tree! The solution I came up with is called world engine (Internally. I'm not making it a brand or anything) and it is a layer on top of the procedural galaxy generation in the form of a tree of stories. Lets be more specific.[/p][p]This is what our galaxy looks like right now.[/p][p][/p][p]Every tile in that grid is procedural. An algorithm runs for each grid who's only input is the grid's coordinates. Based on those coordinates the following things are generated by the algorithm[/p]
  • [p]The position of the nearest star (and thus the light info)[/p]
  • [p]the type of that star (and thus some constraints on system generation)[/p]
  • [p]the distance to that star (and thus the temperature)[/p]
  • [p]then some noise samples are taken at the grid's coordinates[/p]
[p] [/p][p]finally with all of that info, terrain such as asteroids and clouds can be placed, the backdrop is chosen, and ideally the content of the system (i.e. the ships and stations and badguys etc) can all be placed. However that last one, the actual content, is the sticking point. What good is it to place a station for the player to interact with if it has no connection to the rest of the world? This would have to be "generic station spawned by random number generation" every single time you find one, and the ships you interact with are no better. It gets worse: I can't begin to use random numbers or noise sampling to build stories here because the entire algorithm runs in a vacuum without any knowledge of what generates in the neighboring systems.[/p][p]In the Zero Falls campaign I initially tried to solve this by just manually placing things at specific grids and coordinates...it was too much, there is too much space to fill...I needed a procedural solution.[/p][p]So the solution is to have another layer on top of procedural terrain generation: the story layer. That's why World Engine primarily takes the form of a tree of stories. Something like this:[/p][p][/p][p]The nodes are represented here in a graph...however in the game each node has a physical location on the map, and a number of grids that it affects. Then each node can have stories added to it. Stories can do things like the following:[/p]
  • [p]place a station[/p]
  • [p]configure the contents of a shop[/p]
  • [p]place agents into a bar[/p]
  • [p]create ships that fly around and do things[/p]
  • [p]generate missions that show up in mission boards[/p]
  • [p]set the prices of trade goods[/p]
[p]However the most important thing that stories (the artificial construct in my code) do, is that they tell their stories (the actual fiction of the game world) by procedurally creating world tree nodes and other stories (code constructs again.) The result is like a book that is trying to write itself by unfolding itself in smaller self-contained subdivisions like chapters, pages, paragraphs, sentences, and then finally words and letters. [/p][p]When you place a star system story, it takes as a parameter how populated the star system is, and what the personalities of its inhabitants might be. Then it places stories one level below it: trade districts, mining operations, populated planets, corporate ventures, military bases warlords, etc. These stories then do the same, with for example a trade district picking vendors from corporations to occupy zones of that district and placing a story for each of their shops. The story for those shops then knows it will spawn a station, and it knows what should be in that station but it continues, creating stories of the jobs that various people need to work at that station, and what types of services are offered etc.[/p][p]A story can be told how many people live in a star system and make procedural decisions about where they might live, and under what circumstances. It places their habitats, and their habitats are stories which then further create the stories of who lives in those habitats. The people who live in those habitats go looking for jobs, and they decide what ship they own, and they set about moving around the system going to work and buying groceries and living their lives inside of a tree of interconnected stories.[/p][p]Hopefully you get the picture. If not, here's what a star system looks like right now:[/p][p][/p][p]Oh and by the way. The entire world generates based off of an sqlite parameters database. Literally everything is in that database (factions, assets, locations, generation rules, recipes etc.) and so my hope is that mod makers will have the option of creating their own parameters database allowing them to define nearly every aspect of the game world for mods. Multiple parameter databases can be loaded for a single world generation so the hope is that you should be able to add and remove mods to configure your world generation the way you want. You can add entire star empires this way.[/p][h2]Development status[/h2][p]So I built this thing in an experimental environment that I've been toying around with for years (more on that later) and started playing around with it. I am proud to say it works great![/p][p]I wanted to make a big blog post bragging about how cool it was, but there was a problem. I immediately began having ideas of new things I wanted to build out of stories. I started playing with them, and I decided a proper announcement would carry more weight if I could show off the things this engine is capable of.[/p][p]Here is a short list of things I have been mucking about with in world engine using stories:[/p]
  • [p]Proper trade skill professions for crafting[/p]
  • [p]data-driven warlords with proper difficulty and loot progression[/p]
  • [p]an entirely new category of loot in the form of a complete rework of artifacts[/p]
  • [p]proper exploration with exp and breadcrumbs and maps[/p]
  • [p]interstellar travel and fuel infrastructure[/p]
  • [p]dynamic faction wars[/p]
  • [p]interstellar economies based on supply chains[/p]
  • [p]living agents that have fully simulated lives[/p]
  • [p]faction reputation tracking and reputation rewards[/p]
  • [p]the entire story of humanity among the stars[/p]
[p]Unfortunately, this post is already disastrously long and each of the above probably warrants an equally long exposition all on its own. That's why I am just going to have to promise to make another post in the future with more information.[/p][p]The reason I have posted this today is because some of these new systems are sufficiently well developed that I am starting internal testing on them. (Internal testing means I'm starting to get some discord people involved)[/p][p]I've got a lot of stories yet to write, and as I write them what I am learning is that this system makes it hilariously easy to come up with a new procedural story that has visible affects across the entire galaxy. I add a few lines to a database table and without further intervention the galaxy is populated with new content. Stations are placed, shops are populated, quests are generated, agents are put into bars. This is exactly the massive force multiplier for content generation that I so desperately needed, and I've been laser focused on building cool stuff in it.[/p][p]Before this can be released onto Zero Falls early access, I need to integrate it properly. That means adding a button to the main menu to start a sandbox mode character, but it also means testing and debugging and tuning stories and making sure it can save and load your progress etc. So if you want an ETA I apologize. I'm 1 guy building a thing that's far too large for 1 guy to be building and the fastest way to build it is to ignore the rabble, avoid arguing with people in forums, keep my head down, slowly kill myself with caffeine, and get the damn thing finished so I can move on with my life.[/p][p]- George[/p]

0.9.4.02 bugfix patch

  • fixed a bug with abandoning quests from the map screen that wasn't fully removing the quest
  • fixed a bug where the gauntlet could recover from lost data by recreating the gauntlet but it wouldn't re-add all of its locations so it would be inaccessible
  • the gauntlet will now generate a crash log if it fails to load correctly so I can hunt down the source of data corruption making gauntlets recover themselves
  • world saving was made more robust with each individual stage being capable of logging exceptions and attempting to move on to the next stage, hopefully allowing me to catch sources of save game data corruption in the future
  • added an extra safety check to world database finalization to make sure any async data items received after a shutdown was called can be collected and written before the database declares itself final and ready to close.
  • fixed a bug with procedural quests that caused their description details to disappear after you accept the mission
  • fixed a bug that could cause procedural quests to generate pirate's cove as their destination
  • found and fixed a memory leak that was caused by switching back and forth from ship exterior view
  • found and fixed a memory leak that was caused by switching back and forth from the universe map
  • fixed a memory leak in the ship designer caused by resizing the screen
  • fixed a possible memory leak in ship designer that might not have been happening at all but the code looked suspicious so I rewrote it
  • the sinidal cascade active module can no longer be activated while in travel drive
  • fixed a bug with procedural quests using duplicate quest id that could cause a crash depending on the order that you attempted to complete multiple procedural quests
  • fixed a bug where procedural taxi quests were changing their destination after being saved and reloaded
  • passenger mission bed requirements now correctly recognize when a bedroom has multiple beds