- Part 1: Setup and Code 1
-
Part 2: Running Mates, Custom Themes, Candidate Colors
Part 3: Editing States, Starting Polling
Part 4:'Issue' Scores and Map Editing
Part 5: Questions, Answers, Advisor Feedback
Part 6: Answer Effects, Ending Codes, and Conditional Endings
Part 7: 'Choose Your Own Adventure.'
Part 8: Official Mod Loader Standards
This part will explain Questions/Answers/Feedback, and of course some basic writing tips and resources.
Step 16. Understanding Questions, Answers, and Advisor Feedbacks
You can barely see it, but this is the code for questions as McKinley and Hobart in 1896, and this can all be found in Code 2. Here's a link to the exact code I'll be editing. It's all one, big, long line, so the image makes it look a little daunting. One useful tip is to use the search function. Let me just put the part of the code that has the first question in the post so we can read it and understand it easier. They're divided up by "models", like so
{\"model\": \"campaign_trail.question\", \"pk\": 165, \"fields\": {\"priority\": 0, \"description\": \"Which of the following will be your primary campaign message?\", \"likelihood\": 1.0}}
PK is the number, or identifier for the question. When the answer codes come in later, you'll see that the answers to this question have their "question" number in the code as 165. Let me put the portion of code that has the answers.
{\"model\": \"campaign_trail.answer\", \"pk\": 1352, \"fields\": {\"question\": 165, \"description\": \"My opponent's ideas are almost as dangerous to the survival of the United States as the Democratic traitors were in the 1860s.\"}}, {\"model\": \"campaign_trail.answer\", \"pk\": 1353, \"fields\": {\"question\": 165, \"description\": \"I am the candidate who brings the reasonable, tested ideas of sound money, protection, and prosperity. Bryan on the other hand will usher in radicalism and instability.\"}}, {\"model\": \"campaign_trail.answer\", \"pk\": 1354, \"fields\": {\"question\": 165, \"description\": \"My campaign will reach out to workers across the American spectrum, while Bryan's policies will leave them defenseless against foreign competition and will debase their wages.\"}}, {\"model\": \"campaign_trail.answer\", \"pk\": 1355, \"fields\": {\"question\": 165, \"description\": \"My administration will bring back the era of the budget surplus, and will work towards the professionalization of the federal government. We will continue to phase out the 'spoils system' in accordance with the Pendleton Act.\"}},
1352, 1353, 1354, and 1355 are the answer PKs, which is how other parts of the code can identify them. Okay, so that's good and all, now I'll use the search tool to find the advisor feedback for these answers.
{\"model\": \"campaign_trail.answer_feedback\", \"pk\": 482, \"fields\": {\"answer\": 1352, \"candidate\": 20, \"answer_feedback\": \"The newspapers are noting that you have emphasized your Union Army roots and drawn the lines clearly against Bryan's misplaced extremism.\"}}, {\"model\": \"campaign_trail.answer_feedback\", \"pk\": 483, \"fields\": {\"answer\": 1353, \"candidate\": 20, \"answer_feedback\": \"This is a good, moderate appeal that should draw sensible voters from across the spectrum.\"}}, {\"model\": \"campaign_trail.answer_feedback\", \"pk\": 484, \"fields\": {\"answer\": 1354, \"candidate\": 20, \"answer_feedback\": \"Labor leaders are skeptical, but at the same time Mr. Bryan is known to be primarily a farmers' candidate.\"}}, {\"model\": \"campaign_trail.answer_feedback\", \"pk\": 485, \"fields\": {\"answer\": 1355, \"candidate\": 20, \"answer_feedback\": \"These are good motives, but the spoils system has been in decline for years. Most voters are more worried about finding work and regaining prosperity.\"}},
Likewise, the "answer" portion of each feedback code is the corresponding answer that the feedback shows up for. You can do a lot with these. You can make your own "models" by copying existing code and changing the PKs (and the question/answer portion if its an answer of advisor feedback. Alternatively, you can do what I did for 1876, and make your own question/answer/advisor feedback PKs. Here's a link to Hayes/Wheeler Code 2.
I'll also include some template code, with the better formatting right in this link. The full code is right below it if you wanna look at that. I imagine much of the coding in Jet's Modding Tool is self-explanatory.
Step 17: Tips for Writing
I'll link you two a few existing write ups on writing/coding that go into further detail, but I do wanna give a bit of my own advice.
First - keep all the answers in the boxes. There is such thing as writing too simple and short, but long and often boring writing that cuts off the answer container is also harmful for a mod. The best answers are 1-2 sentences.
Next - add answers that have issue scoring! Issue scoring is incredibly valuable if done correctly and can often contribute to the replayability of a mod. Make sure your writing includes answers and questions that clearly require the player to take a stance on an issue - one way or the other. Liquid Astro did a good dive in on issue scores that I believe I've linked already, but I'll do it again.
This next one is controversial, but some RNG answers aren't bad. Mods like the original 1992 certainly overdo it, but but if handled well, it can accurately paint a picture of a tense and unstable campaign that must survive by sheer luck. CaptainTom did an opinion article on RNG that I find myself generally agreeing with here.
If you hit a writer's block - play some of the scenarios you find the most fun. Why are they the most fun? Is it the drama, the closeness, the variety of paths you can take? I have found a few games of 2016 and 1968 tend to make me think about how best to set stuff up.
I'll leave you with the full collection of Liquid Astro and CaptainTom's columns. Here's Liquid Astro's column. I would reccomend the article 'In Defense of Gameplay', and here's CaptainTom's column. His '11 Rules of TCT Modding' is a good article that goes further than I did here.
Oh, I almost forgot. Listen to your playtesters and proofreaders!