Hello and g'day, Lunan! I've been viewing the code for Gud-Cursed recently, and I'd like to ask how the code you use to track MC's personality through various choices works. I'm trying to do a similar thing and as a complete noob, I don't know how to approach the matter. Thanks for helping out in advance!
Good day to you too, my dear Nonykins!
I will try my hardest to paint the picture for the code system. You can also refer to this old post that has a bit of info as well, but doesn't get too specific. Keep in mind this is all for the SugarCube language in Twine.
I got specifics below the cut, and had a good time with this, so I hope I didn't go overboard for what you were asking, lol. This was a major thing I had to read up on and research when I first started learning. It took a lot of hours combing through resources and testing, so I wanted to break it down as best I could. Let me know if you (or anyone else) has any follow up questions!
I hope to the gods this makes sense because I have only had 4 hours of sleep in the last like day and a half, and my brain is in a funny place right now, lol. Weeeeeeeeeeeeeeeeeeeeeeeeeeeee.
The personality system I use in GC basically is a sliding scale between (technically) 2 traits which are opposites or somehow opposed to each other. I know other creators use this same thing to some extent as well, and here's what I use:
Reserved to Outgoing
Gentle to Assertive
Serious to Playful
Reckless to Cautious
Bold/Neutral Flirt to Shy Flirt
You could use any traits you can come up with, add even more for extra flavor, or add a couple to get more specific for certain characteristics. I used this set to keep a more narrow focus on the MC's personality. Having tons of traits can be fun but it is a nightmare to code for little quirks, especially when a lot of interactions can be reduced to a few basic traits. But, you should do what you feel motivated to work with!
With my traits chosen, I use the Math.clamp function. This will set a minimum number and a maximum number for the range of the traits to slide back and forth to. My system goes from 0 to 100. Every trait starts at 50, which you can set in the StoryInit passage.
This is what that looks like in that passage:
<<set $ReservedOutgoing to 50>>
<<set $GentleAssertive to 50>>
<<set $SeriousPlayful to 50>>
<<set $RecklessCautious to 50>>
<<set $BoldflirtShyflirt to 50>>
When you have selections for your reader to choose which will influence their stat (to add or subtract from the base score of 50), there's a few ways to do this. For me, I put the code right in the link for the choice.
Here's what that looks like in the Twine passage, and I'll break down the parts for you:
Passage text/prompt: A wild Social Situation appears!
Choice 1: [[Oh no, too shy, too shy!|next passage][$ReservedOutgoing to Math.clamp($ReservedOutgoing + 10, 0, 100)]]
Choice 2: [[Hell yeah, brother, I'm not shy at all!|next passage][$ReservedOutgoing to Math.clamp($ReservedOutgoing - 10, 0, 100)]]
I hope this is legible and easy to understand, lol.
Side notes:
You can set these scores in different ways, like in the next connecting passage; however, doing it this way may save you on creating multiple passages. Putting the scoring in the link itself means you can go to just 1 passage after the choice is made from as many selections as you want. If you set the score in a corresponding passaged, you will have 1 following passage for each choice.
So, as you can see, you can add or subtract from the trait range you're going for. And you can add or subtract any amount from your minimum to your max. A helpful tip to keep in mind with these variables, is that you're really just taking that first trait listed and adjusting it. So, in this example, you are adjusting how strong the "Reserved" trait is. The + 10 response adds to how reserved they are, the - 10 makes them less reserved, and therefore more Outgoing. Remembering that will help you track your selections and code.
Now, to implement the score in your passages to give flavor to your character, you will need to decide what constitutes a low score (say, 0-49) or high score (say, 50-100), and also if you are coding for a middle-ground score. (You could break this up 0-40, 41-50, 51-100 if you really want to do neutral options in the middle.)
For GC, I dropped the middle ground/neutral score completely. Even if someone scores a 50 in a trait, they will still exhibit one extreme of that trait. I did this for my sanity because every single time you code for that trait, I will need only 2 variations as opposed to 3. I felt like doing a "neutral" to most of these traits wasn't going to add anything of value to readers and would just frustrate me. I don't feel equipped to try to come up with middling reactions, not my forte.
If you keep some things more simple for yourself, your variations will come out more authentic. There's no sense in struggling to come up with filler just to satisfy some code.
When I want to reflect the character traits in the text, this is what it looks like:
As you can see, I use 49 here as my dividing line. If the $ReservedOutgoing score is higher (>) than 49, the "reserved" type text will appear. Then, just using the <<else>> function is an easy way to code for the opposite trait. If you are coding for more than 2 variations, you will need more coding for each range you're using. Keep in mind, that you can use > or < depending on which way you want things to swing (with the score being higher > or lower < than your chosen score.
The only characteristic that I did differently is the bold/shy flirting. My range is technically Neutral&Bold Flirting to Shy Flirting rather than just bold/shy, but I do not use 49 as that pivot number/score. I actually use 40. I decided to do this because players who want only shy flirting are going to consistently pick those shy options and drop that score hard and fast. Other players may do a mix of things and keep the score floating in the middle to the high range, so I felt like for this characteristic, it was more balanced this way.
This is what that one looks like:
<<if $BoldflirtShyflirt < 40>>shy flirt<<else>>neutral to bold flirting<</if>>
Hope that gave you what you needed, deary. Let me know if I can help anymore. ^_^
I am terrible at keeping up with tags in general but I am aghast to see my oldest WIP Whenever tag was from nearly 8 weeks ago. I completed a couple of things since my last one, namely the sock garters and the boots, and added quite a few more projects to the list than I scratched off. 😩
Tagged by (and tagging back) @fly-amanitaa @streetkid-named-desire @ouroboros-hideout @aggravateddurian @luvwich
@ghostoffuturespast. Also tagging with the usual zero pressure @olath124 @dustymagpie @medtech-mara @corpo-cunt-couture
@merge-conflict @blackrevell @fereldanwench and YOU reading this! Share and tag me!
Modding
Shocking that it's still my main focus 🙄 but the first one is in support of a couple of VP project:
Presidential Props which include a variety of flags and the NUSA medal with box. The flags are part of the VP set below, though I didn't actually show them here.
Featuring: five different flag varieties with five appearances each; medal box in multiple states, plus the medal itself; and the presidential coin, scalable and with multiple appearances.
SlutWear, a new line of clothing that will tell NC just how slutty your V is. It will be gender and (smaller) size inclusive. 😊
Does Val really heart NC?
An update of my tee framework for dynamic AXL just in time for Pride, though there are no interesting pics to share. Sorry!
However, in support of the previous two items, a modder's tool: a CodePen to generate instances for the yaml. Both the SlutWear shirt(s) and the custom logo tees will require a lot of instances to get all of the color and logo combinations that are possible through dynamic AXL. There's still a little work to do, but it's already been of great use to me, as it wrote 220 lines of code for me. Let's not discuss how many lines of code I wrote to save those 220. 😂
Me using the tool to generate instances for the custom tees yaml. This will remove the limit on colors available to the user, so they can have any color with any of the logos!
VP (and Writing)
A glimpse at a set I took last week for inspo in the presidential PWP that's been stalled out at 5.7k words. More on it in a minute...
Even though the pics are cropped, they're still on the risque side, so I'm sticking them and the rest about the PWP behind the cut.
Not shown: Johnny both rolling his eyes at V and enjoying the show
I've been working on a PWP that was unrelated to the President's Merc AU for months now, but have been stuck because, well, I don't know how to wrap it up. I posted about it a little ways back and someone helpfully suggested that I just have to keep going until one of them passes out. Which, is what does happen, but I don't have that kind of patience to write it out and nearly 6k words is already well longer than my usual PWP, so I went in game to set the scene and possible prompt some ideas for a potenial ... climax to the scene.
It worked! I have a plan, and I think it won't take more than 500 words to reach the end, plus a few more touch-ups to help set up everything, then a rewrite or two for cleaning and polishing.
In the meantime, as I've been working through this version of Val and how she responds to Rosalind, it's the perfect prologue to The Tower story that I've been writing longhand. Val is going to leave this encounter fully loyal to Rosalind and will turn So Mi over with only a moment's hesitation. She doesn't have any attachments in this universe other than Misty and Vik, and after she wakes up to what Night City has become, it's easy for her to walk away from it forever. Especially when it puts her closer to Rosalind.
I never have issues with my own theme. Friends who use my codes haven’t reported issues. A couple of years ago I did free coding updates for those with older coding of mine and I haven’t heard about any issues from any of them, either.
In today’s tutorial we’re going to learn how to create these image links in a sidebar. It’s a fairly beginner friendly tutorial. We’re doing a variation of the jumbled links from this tutorial I wrote a few years ago, so if you’re not familiar with that then please go read it. Please keep in mind this particular coding was designed for a non-contained theme.
Tutorial below the cut.
Step #1
Like in the original tutorial, you’re going to arrange your links in your coding somewhat like this. I like to keep mine labeled for organization and consistency in my work, but also to help others read my code and understand it.
Do this three more times within the links box to make four links.
Now we’re going to code our css like so.
This is also where we add the links to the icons we plan to use for each link.
It’s important to correctly lable the link for your 100px x 200px icon in it’s own <div> because this is what separates it from the other links and enables you to move it independently of them. In this code I labeled Home because it’s my home link, but you can call it whatever you like.
Once you have the above steps completed, you’re going to go back to your first links section and adjust your spacing according to where you want them placed on the theme in relation to your sidebar placement and you’re done. Congrats! You’ve just coded a beautiful set of links for your sidebar.
Me to my sister: Hey, since I’m trying to learn to code, I’m thinking of trying to make a simple game for your girls to help me learn what things do and how it all fits together. Do you have any input on what sort of story you’d want it to be, or what they might like?
me thinking: >I know the youngest likes unicorns atm, and the oldest has a thing about stars maybe? So I can maybe do something with a unicorn going to space and meeting some martians and--<
Sister: Oh wow, that sounds great! Yeah, if we can do some sort of D&D style thing that’d be nice. With some good moral lessons in there, like an ogre has taken over a bridge and they can’t fight it so they have to go and ask for help to teach them it’s ok to get help. And then something with bullying maybe? Oh, and if you can have a character select screen so they can pick which outfit they want that’d be nice!
Me: . . . . . Sister, darling, you’ve known me my entire life. You should know better than to put that much faith in me!