Jump to content

[XCL] [0.23] Alternate Job Framework (and Convienience Store Clerk job) [DEFUNCT[ 0.1.4.2


6 Screenshots

About This File

Will not work on current update! A compatible version of the EZ Stop is now being worked on (see XCL Discord) but the framework is no longer needed 😥

 

Is a sales job just not for you? Is your character barely able to read, let alone work in sales? Or maybe, they’re too good for a lowly sales job? Then the Alternate Job Framework may be the mod for you!

 

What this mod does:

Adds a job framework (and a job) to support other jobs besides the DynaPill job found in the base game.

Currently adds one job as a convenience store clerk at a place called "EZ Stop". You can work it as your main job or as well as the sales job (which I'll probably account for at some point adding some exhaustion mood, if you're working 9-5, then 9-5 in the same day, hah).

 

So, go, and use this framework to make your own job mod to increase the number of available jobs!

 

EZ Stop:

convenience store with flexible working days and day or night shifts. Opportunities to get "friendly" with some of the customers, and find ways to make the shift go faster. A work skip is unlocked after the first day of work, if you just want the money without the hassle, hah.

 

Installation:

Open the mod loader -> click add mods -> select this mod -> load mods -> done!

 

Compatibility:

 

Compatibility issues seem to be fixed for now (none new unresolved ones anyway, hah). Let me know if you think you've found any.

 

Other available jobs:

Beyond Bliss Club - Also by me, hah. A club for BBC only girls to work at.

 

Someone else should make a job so I'm not the only one on the list, hah.

 

Making your own job:

Spoiler

 

Unzip the .xcl folder with WinRAR. Use the EZ Stop.twee as a base if you want (just make sure to rename all passages and variables), or start from scratch, and just refer to the framework.twee (you shouldn’t need to edit anything on there; message in this mod’s page on the XCL discord if you want anything added). If you open both files in VSCode you can use the explorer search (ctrl + shift + f) to follow passage tags from the framework.twee, to see what you need to reference.

 

 

Variable list (not including EZ Stop):

This is just a list of the framework variables added (not the ones added for the clerk job included as an example job).

  • $job – used as a global check for employment and other stats. Make sure to set $job to $your_job when you get employed.
  • $jobs – used as a storage for multiple jobs. Datamap is currently: "morning job", "none", "day job", "none", "night job", "none". Add (set:$jobs's "day job" to $shop_clerk_job) when being hired and (set:$jobs's "day job" to "none") when quitting. Make sure you add a check for whether the shift your job is already occupied with your job advert/interview. Then 
  • $job_status - Set it to "hired" or "not hired" when hiring or firing. I forgot linked datamaps change, so secretary only wasn't working, hah. If you're making a job mod, make sure to add (set:$job_status to "hired") and (set:$job_status to "not hired"), in the appropriate places. I've added a check for making sure it stays "hired" unless all $jobs slots are empty.
  • $potential_jobs – currently not used for much except storage for the “unemployed” job that you should switch back to when being fired/quitting.
  • $selected_working_days – variable for setting days of the week that your job works (and there's passages include that give you a checkbox selection).
  • $resume datamap – added resume add and checkYou can now use $resume to check previous jobs,
    • Like this:
      • (set:$job_interview_check to 1st of (twisted:(dm-names:$resume))) "I see you worked for (print:$resume's $job_interview_check's "company") as a (print:$resume's $job_interview_check's "role"), for (print:$resume's $job_interview_check's "days worked") days."
    • Or this:

      • (set:$weeks_worked to (round:($resume's $job_interview_check's "days worked" / 7))) "I see you worked there for (if:$resume's $job_interview_check's "days worked" < 7)[for less than a week.](else-if:$weeks_worked is 1)[for (print:$weeks_worked) week.](else:)[for (print:$weeks_worked) weeks.]"

 

Passage overwrites:

I feel like there should be more than this, but all other $sales_job references I could find are in the job itself. Basically, these replacements are all to set $job to be the global value for job checks. $sales_job is still used while you’re at work, and once you’re hired. Same as I’ve done with $shop_clerk_job.

  • Find a Job (obviously, hah) – Overwrites and splits up this passage to allow for various other jobs.
  • Day – To change the daily checkbox to reflect alternate working days.
  • Today request – changing $sales_job to $job for stating if it’s a work day, and adding passage_tags to let you add a custom comment. Start yours with (set: _text_lines to it - (a:"It's a work day.")) if you don’t want the base message.
  • Stepsis comment – to add passage tags to comment and change $sales_job to $job.
  • Night thought none – to change $sales_job to $job
  • job interview accept – Setting $job to $sales_job after being hired.

 

Passage_tags:

For all of these uses, refer to where and how I use them in EZ Stop for format and actual usage.

  • “potential_jobs” – for adding your job to the $potential_jobs datamap.
  • "alternate_job_find_a_job" – a space in the Find a Job passage for you to potential add another interview, text, or method for getting your job.
  • "alternate_job_options" – a space in the options for Find a Job to add another interview or path for getting a job.
  • “job_noticeboard” – space for an advert on the job noticeboard (copy the EZ Stop version for formatting).
  • "alternate_job_options_2" – allows an alternate exit from the job noticeboard (related to the alternate_job_options, potentially).
  • “job_call_application” – allows a phone call from the employment office for your job (which you could use to set up an interview elsewhere, or whatever).
  • "alternate_job_work_checkbox" – to use in the day passage for customising the daily work checkbox for your job
  • “alternate_jobs” – used to put your job in the “Go to Work” passage. Use this for the time slot assignment for multiple jobs, e.g. :(if:$time is 2 and $jobs's "day job"'s "name" is "your job")[(display:"your job begin")] This will make the job work only in the daytime activity slot.
  • “refresh_possible_activities_alternate_jobs” – used to add your job to refresh possible activities.
  • "work_day_request_comment" – Allows you to set a custom “it’s a work day” message.
  • “stepsis_alternate_job_comment” – allows you to add things for Alexia to comment about your job.
  • “set_job_working_days” – Allows you to change your job’s working days in gameplay.
  • "night_thought_job_interview" – Added to add passage tags for night thought job interview. Make sure your interview has: ($remember:"job interview",1,"boss","none","begin"), and then ($remember_update:"add","job interview","your job accept job"). Then using the passage tags, do this: (if:$memory's tags contains "your job accept job")[Blah blah].
  • "night_thought_none" – Added to night thought none at the start. Add (if:$whatever)[print your job comment (or anything else, hah)]. Make sure to use (if:(twist:1,2) is 1) or something if you don't want it to happen every time. Or (unless:$whatever) to let one of the other night thought none options take precedence.

 

Instructions for making your own job:

Basically, just copy and paste the EZ Stop code and change to your liking (pretty much what I did with the sales job code, hah). Find and replace of "$shop_clerk_job" should get you well on your way, hah. But probably do it one by one, so you can see what you’re changing. There's features I haven't mentioned here, but you'll see them while digging through the code, hah. Feel free to message on the XCL Discord for any clarification or changes to the framework you want for your mod. 

 

The essentials are:

  • $job is used primarily to change dialogue and stuff when you're not at work, make sure you add a (set:$job to $your_job) when you get the position. $sales_job is left mostly untouched, and I use $shop_clerk_job for a lot of instances too. $job is more a global setting, then $shop_clerk_job is used on the job. Make sure to set $job to $your_job when being hired, and remember to change when quitting/being fired. I currently use:
     
  • (set:$your_job's "status" to "not hired")(set:$job to $potential_jobs's "unemployed") when leaving the shop clerk job.
  • $potential_jobs isn't used for much, just a kind of storage, but you may see another use for it? Currently, the most important thing is that it just stores the "unemployed" job.
  • I've also added a "name" to the $sales_job datamap. Only used at the moment to increase “days worked” to $job if you’re unemployed, for potential use later.
  • The job noticeboard I've envisioned for mainly stuff like shop jobs, shift work, that sort of thing. So for mine, I've added an advert and section for calling a number. Feel free to use this to set up an interview instead, or whatever (or have the job come from somewhere else entirely, it's just there if you want).
  • Follow the passage_tags and passages to see where things are going!

 

As far as the actual job function, you could just have it skip the whole day if you wanted to; I’ve added a skip option once you’ve worked your first day to EZ Stop, in case people just want the cash without the work, hah.

 

Job ideas:

These are some ideas I’ve (or others have) had for some potential jobs. Probably check on this mod’s mod page on the XCL Discord to see if anyone else is working on something, so you don’t compete: collaborate instead!

  • Porn star - (Chloe and I both think it should be working for Dredd, obviously, hah.) This one is just prime option for a custom job, but probably a lot of work (media gathering mainly). I mean, casting couch videos can just be your interview, hah.
  • Prostitute – Again, an obvious choice. You can pretty much already be a freelance prostitute, hah. Just increase the rewards, and have a pimp that takes a cut, other flavour scenes, et c.. Maybe combine this and the previous for a cam girl or something? Like on AOL with a chunky webcam.
  • Handyman/plumber (Ieonkno’s idea) – annoyed that I didn’t think of this first, hah. Job for a male character that calls on the bar girls for the classic porn faire. Or maybe one who actually works genuine repair jobs while being hit on (which reminds me of this skit series, haha: https://www.youtube.com/watch?v=rU_XM9QPgdM&t=2s).
  • Nurse – like the last one, a typical porn scenario that you could probably make something out of with how much media there is for it.
  • Bartender – One that’d probably be pretty simple and decent for a starting job. Take the EZ Stop code and just change the media to be in a bar, basically, hah.
  • Bonwit Teller – For a discount on clothes, obviously, hah. Could add some personal shopper gameplay type thing? Or just a simple saleswoman/salesman position on the counter.
  • Quitting/Being fired from DynaPill  I'll probably get around to this at some point, but I don't play the sales job enough to know how best to do it without it playing it more, so maybe someone who knows it better would do better! At the moment, it'd just be a simple choice to quit with no fanfare, hah.
  • Some specific suggestions for jobs at existing locations from Alan2Lana on the Discord:
    • At the Gym:
      • Masseuse,
      • Personal Trainer,
      • Pool Cleaner.
    • At the Mall: 
      • Gardener,
      • Theater Usher,
      • Box Office Attendant,
      • Barista at Jitters,
      • Salesclerk at Bonwit Teller,
      • Arcade Attendant.
    • At the Broken Drum:
      • Bartender,
      • Waiter/Waitress,
      • Bouncer/Dancer.
    • Summer City at Large:
      • Taxi Driver,
      • Delivery Driver,
      • Dog Walker,
      • Gardener.

 

Future ideas:

 

Nothing major immediately planned, but feel free to comment your suggestions! I’ll probably tweak the EZ Stop section more, but I’ll state in the update notes whether an update is for the framework or EZ Stop or both.

One thing I am thinking of is just a $resume datamap, that adds up days worked in various jobs, for anyone who wants to have jobs limited by experience.

Another is there’s currently no way (as far as I’m aware) to get fired from or quit DynaPill (and keep playing the game – looking at the SWP thing), so I might add that at some point unless someone else does first (and please do, I don’t play the sales job often enough to do a good job, hah).

 

Edited by Melodious Melia


What's New in Version 0.1.4.2

Released

Updated for 0.23. Nothing really changed, really just some minor unrelated edits to format and such. Should be working fine, let me know if there are any issues!



×
×
  • Create New...