Process for Adding mods to GITHUB

Not a coder, but I am a professional DBA, so I can figure stuff out. I have used GIT at work some, but never used GITHUB. Otaku suggested that I add my own professions that I keep suggesting. See quote below. Ok, so a few questions.

  1. He said that I can do this by editing the professions.json and test it out locally. Check.
  2. How do I add positive/negative traits?
  3. if i do this do you want me to post the new files here or add to GITHUB? If you want me to add to GITHUB(as a branch), how do you want me to handle it? I will also post here.

I am ok with adding lots of new professions and traits. That doesn’t sound like something I can totally screw up and waste your time. People are welcome to post suggestions. Ill add anything any everything (as long as its not so distasteful it would cause people to leave). Since professions are ‘optional’ you dont have to use them.

Would this be helpful to the team or will I just get in the way?

Here is what Otaku said.

"
It is possible to put these in yourself you know. And if you want to you can have them pulled into the main on github.

To make them yourself just open up the professions.json in the data/raw folder where your cataclysm game is saved. Look at the other entries to see how they are formatted and you can learn how best to make your own. If you have any questions on how to put in more variables (like increased starting hunger for the Lineman) just post it on the forums. We can always help.

Also, to get them pulled onto github, you have to … talk to a different person."

Cool, enabling people to do things like this is exactly why we started pushing data out to JSON.

First, a quick outline of the steps you CAN take to develop your additions. Most of these are OPTIONAL, but in my experience, the more people you can get to look at and try out your stuff, the better the end product is.

  1. Make changes in the JSON files locally. (mandatory)
    No way around this one.

  2. Test changes locally to make sure they work. (optional, but please, please do it)
    You might think your changes are trivial, but take every opportunity to verify.*

  3. Post changes to the forums for feedback. (optional)
    This is a big part of why we used JSON, post your changes in [ code ] blocks, and people can copy/paste to their installs and try your stuff out, and give you feedback. Also passing json patches around will give people opportunities to learn how it works, increasing the number of modders, creating a virtuous cycle that cumInAtES In WORLD DOMINATION! MUAHAHAHAA! ahem sorry. It’d be nice if you post it on the forums.

  4. Make a Github pull request. (optional, but very helpful)
    If you don’t make a pull request, SOMEONE will have to do it**, either another forum user, or a developer. There’s no guarantee of either one happening, so doing it yourself doesn’t leave it to chance.
    Just making the pull request might be the end of it, or it might not, we’re pretty picky about some things, and might ask you to make some changes. Comments on the pull request will appear on the github site, and depending on your settings you may be emailed when they’re made.

Now to your actual question (how do I github?):
The github help site is VERY helpful.
In particular what you need is set up git and fork a repo, the main repo address to use is https://github.com/CleverRaven/Cataclysm-DDA.git
Once that’s set up, using pull requests explains pull requests.
This might seem like a copout, but there is NO WAY I can explain how to do this stuff better than they did.

I’m aware DBAs need reminders of this less than most, but I want the guide to be general :wink:
If you want to be helpful and import JSON chunks posted on the forums into git and make a PR, look into the git commit flag “–author=” and use it, but feel free to put "git import by: " in the commit message. Maintaining proper attribution isn’t just polite, it’s the LAW!

***No really, the CC-BY-SA license mandates maintaining attribution, so if you strip it, you’re comitting copyright infringement.

Kevin was right about the GitHub stuff, as far as I can tell.

As for your second question about adding traits. IDK. I will test some guesses later todaym about 4-5 hours from now. But until then I think it would be like “items” only “traits”. I will test it later and get back to you.

On a side not what is DBA, or professional DBA?

DBA is a database administrator. I work with oracle db. I can script and code, but the languages I use are not useful. I used some C, long ago when I was in school.

Ill start by posting professions here. I can figure out GIT and do a fork, but I probably want feedback on my ideas anyway.

Some technical mod quetsions

  1. Was giving a json for professions (dont remember it off hand). is there a json to add traits?
  2. can the professoins json add traits? some of my professions would come as a package.
  3. I want to create ‘newbie’ professions that would bump up your starting points (we can do this in options) to help newbie get started. Mark them as ‘newbie professions’. Is there a way to do this ? so you pick a newbie profession and it automatically increases your points. A newb may not know how to do this. Ill add hardcore ones too (like CEO since they wont be prepared).
  4. can the professions or traits json adjust stats? if not, ill skip it and keep it simple

Thats it for now. If I add several, it will probably be best to add headers to categorize them. Ill hold off on it.

i dont think they handle traits yet, but if you want to some examples of how to do professions take a look at some of mine.

for example:

{ "ident": "soldier", "name": "Military Reserve", "description": "You're a High school drop out with one goal in mind: to join the military. \nNow you finally get in, and it's hell on Earth in cataclysmic proportions.\nYou start out with some military gear, and a level in survival and firearms.", "points": 3, "items": ["pants_army", "army_top", "boots_steel", "knife_combat", "binoculars"], "skills" : [ { "name" : "survival", "level" : 1 }, { "name" : "gun", "level" : 1 } ] },

Not yet traits IIRC but skills. That is a nice step forward, and probably means that some C++ savvy person is looking out for us json-ers. She/he saw that professions need skills, so she/he added skills. I like this community.

The goal is to push all game entities out to JSON: monsters, furniture, terrain tiles, buildings, traits, factions, fields, NPC definitions, everything. So eventually you’ll be able to define pretty much anything, although for some things you might need to work with someone on the game engine side to define new behavior.

Each piece of this takes a significant amount of work though, which is why the going is somewhat slow. Also it’s initially pretty unrewarding compared to the amount of work, but it’s going to pay off in the long run because it lets more and more people make content for the game, which frankly doesn’t scale all that well.

@otaku: is the dev version the nightly build? Or something else? if its not, how do iget that? I can do skills. I was going to make some newbie friendly professions that would get skill boosts.

The Dev version supports skills.

IIRC the nightly build is a nightly creation of the dev version, and so is usually the same.

worked all weekend. sorry about doing a ‘drive by’ Ill help then vanish. Hope you understand.