Starting Scenarios, C++, Professions, and forum ediquette questions/help

First, I am unsure of what is considered good manners when it comes to making threads here.
If I have several ideas that are somewhat related but could be done independently should I put them all in the same thread? Or is better for me to stick to 1 thread per project. Or maybe 1 thread per issue?

Second, I am unsure of where to go next when it comes to modifying Starting Scenarios. Form what I can see in scenarios.json, I think that it works by having a short bit in the JSON that specifies flags that are to be excluded or included as options in the Scenario. If that is correct then I would like to know where I can find the categories defined. So that I can use the preexisting ones or make new ones. On a more general note I am somewhat unsure of how the mod loader/launcher adds items in from the mod loader. The first possibility I thought of is that any files in the mod folder completely replace the corresponding file in the core JSON for that world. However, that would make it to were no one could run 2 mods that modify the same object. Another possibility I thought of is that each object in the mod folder replaces the corresponding object in the core JSON. However, I am unsure of how blacklist mods would work in that case.

Third on C++, I want to contribute using C++ after I get a better grasp of how the game is put together. I have been using the language for almost 2 years. I am not very good with pointers yet. But I can manually set up an array with them if need be. I am unsure of what kind of projects would be good ones to start of with C++ on. I don’t want to bite off more than I can chew. Which parts of the C++ core of CDDA are easiest to work with?

Fourth, I have some ideas that I think I could implement in several ways but I am unsure which way would be the best. A profession idea I had was a food cart/truck vendor. I am unsure of the best way to implement it. I want the profession to start with access to a food cart. I thought perhaps there might be a way to ensure that a certain profession spawns near a vehicle of a certain type. It might be easier to due through a scenario though. If that is impractical, maybe I could try creating a foldable version of the food cart and having it as one of the profession items. However, that might not be very balanced considering that it has 2 tiles worth of draggable storage instead of 1.
I want to add a lot more urban starting location options. I would like to be able to spawn in at an ice cream parlor/shop. Or perhaps start in a park, movie theatre , church, gazebo, or botanical garden. There are a lot of urban locations with low loot levels that would be nice to have as starting locations. I also had an idea for a super hard to play profession. I wanted to stack 4-6 addictions on the same character and force the addictive personality trait.

1 Like
  1. I remember someone else doing a single thread for multiple ideas and Kevin asking them to use one idea per thread.

  2. & 4. Guide to adding new content to CDDA for first time modders has alot of helpful information on how to get started with implementing some of your ideas, as well as looking at some of the other mods that do what you intend.
    https://github.com/CleverRaven/Cataclysm-DDA/pull/31213 looking at what this person did should give you an idea how to deal with scenarios, (I don’t know if a scenario can spawn you with a vehicle, or a working one at least yet, IIRC someone tried to do something like this before and couldn’t get it to work.)

  3. looking over the documentation is a great start because alot of it is really well done, and most of the updated code is much easier to read as well and actually have descriptive comments :slight_smile: also the devs usually hang out in the discord as well and I’m pretty sure they don’t mind answering questions,

2 Likes

Stone already pointed you toward the Guide, so but he used the old link, so I will relink to the current developer’s wiki version. Read the guide!

CDDA parses all the data from all the mods in your mods.json file, regardless of file names or file locations. Each JSON object/dictionary is evaluated separately, regardless of location. Generally, if you want a mod’s object to replace a vanilla game object, you copy-from the vanilla object without changing the item’s "id".

All of CDDA’s c++ is kind of gnarly, but almost all of it can be understood with patience and effort. My advice, speaking as someone who was in your shoes exactly a year ago, is start small on things that interest you. Pick a topic, scan the github issues for a small bug or feature that you think you can handle, and start debugging. The first thing I added was making sheep tameable with cattle fodder, for instance.

If you don’t care what you work on, feel free to PM directly and I can add you to the basecamps/NPCs/vehicles cabal. You’ll learn a lot! Or not, if that doesn’t interest you.

2 Likes