Adding a Jail and enhancing Fallout's Crime System. Game: Fallout 3In the year 2017 a character I rolled, Janet Telia,
wound up going to jail. This was a real event, something which actually happened in her game. But this event was a one-time thing, quest-driven with one-time stages.
What if this were something which can happen at any time? Assuming the player-character commits a crime, of course, and is caught!
Fallout 3 does have a crime system, which is broken into Minor and Major crimes. Minor Crime includes stealing, trespassing, and pickpocketing. Major Crime includes assaults and murder. In the vanilla game, committing enough of either crime will cause a single NPC, or an entire faction of NPCs, to try killing our character at worst. If the NPC's AI Data is set to Unaggressive and Cowardly, this NPC will flee instead, but he or she will still record the PC's crime as Minor or Major. But this is all. Nobody will ever try to arrest us for random crimes.
My idea is similar to Elder Scrolls games. This idea will include the usual three choices: Go to Jail, Pay Caps, or Resist Arrest. But, there is a difference too: the way I'm going to describe this below, our player-character can only get arrested in Megaton. Maybe in the future I'll also add Rivet City. But no psychic guards shall roam the Capitol Wasteland, unless you want them to.
The main difference between the way crime works in Fallout (as opposed to any Elder Scrolls game except Arena) is Fallout's Crime Counts never go away, whereas in Elder Scrolls it is possible to get Crime Gold to 0. If your character is caught stealing from somebody in Elder Scrolls IV: Oblivion for instance, it is possible to pay some money or go to jail. This will clear any crimes, returning the game's crime count to zero.
In Fallout,
crime counts always remain. If your character is caught stealing in this game, and let's say MinorCrimeCount rises to 5.00, this is where the count shall stay forever. As far as I know, there is no way to get this count back to 0.00.
...And this creates some problems, of course. GetMinorCrimeCount and GetMajorCrimeCount exist, but there is no such thing as SetMinorCrimeCount or SetMajorCrimeCount, or anything equivalent with a different set of names. Because of this, the scripts for this jail idea get longer and longer, in an effort to make sure the officer keeps registering how much crime has been committed. The end result? Eventually the criminal essentially becomes 'banned' from Megaton. It has to happen this way, unless somebody out there figures how to script better than i can!
I don't know if the FOSE team has done anything here for resetting crime; my search of a
Fallout Script Extender site did not return any results for crime at all.
Good news is, any NPCs who have been angered by crimes (causing them to fight) eventually will mellow. Bethesda hardcoded Fallout 3 this way, probably because they had to so gamers could progress with some of the game's quests. After 72 hours, even the most fearsome NPC will regain his or her temper, and it's possible to reenter the cell in which this NPC can be found.
Basically, they forgive, but they never forget.
-----------------------------------------------------
MAKING THE JAIL1a). First step is to duplicate a cell, or create one from scratch. I am not very good at making cells from scratch, so instead I'll simply duplicate MegatonJerichosHouse. I like this cell because it is like a mobile home: everything is on one story. Easier to work with. Jericho's house is also separated conveniently into a larger immediate area + a smaller alcove which has a bed. The smaller area is going to be the actual prisoner's cell, while the larger area will include a bot who eventually will patrol around.
I found one small problem with duplicating Jericho's pad. In the Test character save I used, a second Jericho showed up in my game, despite the fact that I deleted Jericho from the duplicated cell. Once I realized this anomaly, I used the console to Mark For Delete the duplicated Jericho, once I was back in the game. This did not happen in any of my main characters game I've loaded so far, only the test character.
1b). Back to the GECK. In the Cell window's left panel, select the duplicated cell and press F2. Change the cell's name. I am calling it aaaMegatonJail.
1c). Right-click > Edit the duplicated cell. Click on the Interior Data tab and change its Name. I am calling it Megaton Jail. Also, change the Owner NPC scroll-bar from whomever is its current owner (if there is one) to NONE. If the cell is owned by a faction, set this to NONE. There is going to be an NPC who does own this place, but he or she has not been made yet. And it's better to use somebody new, rather than one of the vanilla NPCs already in the game.
Click Apply, click OK.
1d). Now comes the fun part. Time to remove whatever items you'd like. Or, you can keep any items you are unsure about, moving them out into the void.
Turns out, Jericho's place is not large enough. So I toggled Snap to Grid and Snap to Angle on. Then I selected a portion of its middle section, duplicated it, moved the area where the jail cell shall be (extending the cell's middle), and then moved the duplicated area into the initial area.
Here is what the jail looks like so far, with NavMesh turned on.
I did not mess with the area on the left side of the cell. This is where a robot is eventually going to patrol. Note the red stuff on the floor. This is
navmesh. Navmesh tells NPCs where they can walk, and where they cannot. Since the robot is never going to travel into the area where the prisoner stays (which is on the right side of the cell) it's not important that there's no navmesh there.
> If there is an owned bed already inside the cell, change its Ownership to Player.
> I also added a sink into the jail. Since I use Realistic Needs, my character will need to drink occasionally, and water is one thing which is always free in jails. But what about food? Don't worry. Food gets handled, too.
Time to deal with
NavMesh. Although I am not messing with navmesh in the cell I just duplicated, I left some instructions below for those who want (or need) to change this. Note that working with navmesh takes practice. And practice takes time. Those who don't need to mess with this can skip to step 1f.
1e). From the main toolbar, select NavMesh and then select Remove Cell NavMeshes, which is roughly halfway down the list.
New NavMesh must now be generated, and this gets complicated, but is very important. NavMesh is what allows NPCs to walk over specific areas, it is also supposed to keep them from walking into inanimate objects such as walls and rocks (though sometimes they still do this). If new NavMesh is not added, any NPCs who enter this cell, or are placed into it, won't be able to move.

Yes, this happened to me!
Describing how to add NavMesh requires some visual aids, so watch the video below, following the Anonymous Dev's instructions.
https://www.youtube.com/watch?v=RYJAj-63FR4Note that in most cases (esp. with duplicated cells), new navmesh is not 100% necessary, for those who wish to skip this step and save time.
Tip: Turn Snap to Grid and Snap to Angle back on, if these have been turned off for NavMeshing.
1f).
OBJECT windowNow to add the jail's cell door. This is going to be a sliding door, which can lock and unlock. In the Object window's left panel, select All, and then type Jail in the Filter slot. Find and select JailDoor01. Drag the jail's door into your cell. Obviously it's important to make sure this door will block the area where the prisoner will stay. Since one door was not enough to block the way out, I duplicated the first door, and moved the duplicated door over.
1g) Give the door a Reference ID. I named it aaaMegatonCellDoorRef. Copy this Reference ID and paste it onto a Notepad page. In fact, it helps to copy/paste any referenced names like this, since they will later get used in scripts.
Toggle Persistent Reference on. Click OK.
1h). Get JailDoor01 out of the filter and select Items > Key. Edit a key. Doesn't matter which one, but try to select keys which don't already have scripts attached.
Edit the jail door so that only this key will open it.
1i). In the CELL window, there are some choices. It is possible to put a door on an empty space of building, anywhere in Megaton, therefore, the prisoner is in Megaton when he/she gets out of jail. I decided to take this several steps further. Used the Render window and went out into the Wilderness, somewhat west of Vault 101. Then I went into the Object window > World Objects > Static, and dragged MegatonMisterBurkesHouse out into the wasteland.
Next I found MetalScrapDoor01 and dragged this door into the Render window. Connected this door to the cell's entrance door. The reason I made the jail way out yonder is because spending time in jail won't clear one's bounty (or crime count, as the GECK likes to call it) and I originally had problems with the main officer (who has not been made yet) still trying to arrest us after we get out of jail. Later on, I fixed this problem. But in roleplay terms, it just makes more sense that the player-character is temporarily removed from Megaton society. This is not 100% necessary, so those who wish to put the jail in Megaton itself, this is fine.
Here is what the final Megaton Jail looks like in my game. Again, the right side of the cell (roughly 2/5 of the space) is where the PC gets locked up.
1j). Make sure the interior of the jail is in the Render window. Go into the Object window > World Objects > Container and drag any non-scripted container into the Render window. I dragged LockerVault01Empty in there.
1k). Double left-click on the container, and choose the Edit Base button. Rename its ID and Name. I am calling it aaaEvidenceLocker and Evidence Locker. It helps to make sure this container is completely empty, for this is where the player's stuff will get stored after being locked up.
1l). Make sure Respawns is not toggled on. Click OK, and save as a New Form.
1m). Go into the Ownership tab and choose Player. Give the container a Reference Editor ID (aaaEvidenceLockerRef), and toggle Persistent Reference on (if it's not already toggled).
1n). Two more steps. Go into the Object window > WorldObjects > Static and drag an XMarkerHeading into the jail. Put it the area where the prisoner shall stay. Essentially, put this marker behind bars.

Give this XMarkerHeading a Reference ID. I named it
aaaMegatonJailPlayerXMarker. Copy / paste this onto a Notepad page.
1o). Drag a second XMarkerHeading into the jail, but this time do not put it behind bars. This second marker is where the PC will get teleported, assuming greater crime has been noted. Essentially, the PC gets temporarily banned from Megaton, and will need to stay out of town for 3 days! I named this second marker
aaaMegatonJailBookingMarker. Copy/paste this also, so it can be copy/pasted into scripts later.
Click OK. Save.
MAKING THE OFFICERSOne or two officers are needed. I am opting for two. The first one will perform initial arrests, and the second assists in beating down the criminal, if he or she resists arrest. First I'll make the arresting officer. This gal will handle all the dialog, and she's much more complex than the second officer.
OBJECT window > Actors > NPC 2a). Follow all the usual steps for making an NPC: choose Race, Voice Type, ID, and Name. Click OK. My officer will be a lady with the ID name of aaaMegatonOfficer. I toggled Respawns on, so that if one of my characters wants to try to pwn her (and succeeds somehow), another officer will eventually take her place. Essential can also be chosen, of course.
Traits tab2b). Change Class to SecurityOfficer. This arranges the officer's stats and attributes in a particular way, making him or her ready and capable for the job. Change Alignment from Neutral to Good.
Stats tab2c). I wanted to make a tough, but not impossible-to-beat officer. So I selected PC Level Mult and put 3.00 into the Level Mult slot. AutoCalc Stats can be used as well, to make the officer stay truest to the SecurityOfficer class.
Factions Tab2d). The officer gets added into the MegatonResidentFaction, causing her to become part of the citizenry, occasionally making small talk with other Megatonites. Also add him or her into the MegatonCrimeFaction. This will cause the officer to recognize Minor or Major crimes committed against residents of Megaton. Both of these factions are necessary for the arrest process to function.
AI Data tab2e). Set the scroll-bars like so. It's important to make somebody who remains peaceful by default, but will not back down from combat if the need arises.
Aggression: Aggressive
Confidence: Brave
Assistance: Helps Nobody
Responsibility: 90
Assistance is set to Helps Nobody, which normally means the NPC won't care if Friends and Allies are getting into trouble, but this is not a problem, because we're going to want the officer to focus on arresting the player only. Not getting into combat with him or her. This part (combat) gets handled later on by scripts, if Resist Arrest gets chosen.
AI Packages tabAI does not need to get specifically added to the officer. I have tried to add a DefaultSandbox package, but this messes everything up later on. Instead...go to the ....
Main toolbar > Character > Packages2f). Start a Find package. Give it an ID and copy this ID. Paste the ID onto a Notepad page, because it's going to be needed later on. I just named it aaaArrestPlayerPackage
2g). Specific Reference is toggled on by default. In the Ref scroll-bar, scroll down to PlayerRef.
2h). Toggle Allow Search on. 'Near editor location' can stay toggled, Type 1024 into the Radius slot. This is roughly 48 feet (14.6 meters) which is not nearly the total diameter of Megaton. Technically it is possible for a criminal to avoid the officer after being witnessed committing some crime, but in my game, this is always a dice-roll. I put the officer in the middle of Megaton, but since she sandboxes around a little bit, my character and I will never know exactly where she is, assuming we're trying to avoid her somehow.
2i).
Flags tab: Toggle
Always Run on. Toggle Fallout Behavior off.
2j). Make a second package, this time selecting Sandbox. Simply pull up DefaultSandboxEditorLocation1024, rename its ID, and Save as a New Form. Nothing else needs to be changed, although some may wish to mess around with the Flags tab. I am calling this package
aaaMegatonOfficerSandbox. Copy this script and paste it onto that same Notepad page.
Click OK, close the Packages window, and save.
2k). Put the officer somewhere into the world (I chose ground zero of MegatonPlaza, right next to the Brass Lantern and bomb). Give him or her a Reference ID. I am calling her aaaMegatonOfficerRef.
The rest of the officer's tabs can be changed around however you'd like. I added ArmorTenpennySecurity and HatPoliceAdult to give her an appropriate look. I also gave her WeapPoliceBaton, a 10 mm handgun, and some 10 mm rounds.
Optional: add the jail door's key into his or her Inventory. This can now be stolen by a really good thief! It is possible to break out of jail if one has the key. It is also possible to write the upcoming quest so that breaking out of jail will cause more problems for the PC. This gets complicated though, and what's about to follow (the quest) is complicated enough. Getting everything to
work right is complicated enough!
Click OK and save.
2l). Go back into the officer's NPC panel. Start a script like so...
scriptname aaaMegatonOfficerScript
short Status2l). Close and save. Click OK, closing all officer's panels. Save, and reopen the officer. Find that script in the scroll-bar, bla bla. Reopen it.
Here is what it's going to look like...
scriptname aaaMegatonOfficerScript
; Status 0 -- No or low crime committed. Megaton officers sandbox. Most “good” PCs will remain at Status 0 forever.
; Status 1 -- Triggers during first arrest process. PC has been caught with their first crime, Major or Minor.
short Status
Begin GameMode
;----------------------------
;The scripts below deal specifically with the arrest process.
If (Player.GetInWorldspace MegatonWorld == 1) && (Status == 0)
If (GetMinorCrimeCount >= 3) || (GetMajorCrimeCount >= 1)
Set Status to 1
EndIf
EndIf
If (Status == 1)
aaaMegatonOfficerRef.AddScriptPackage aaaArrestPlayerPackage
EndIf
;--------------------------------
;The scripts below cause the officers to sandbox in Megaton, if the PC has not committed any crime yet.
If (Status == 0)
aaaMegatonOfficerRef.AddScriptPackage aaaMegatonOfficerSandbox
EndIf
End> To summarize. The first two scripts, when Status gets set to 1, cause the main officer to arrest our toon IF our toon has committed a certain number of Minor or Major crimes. The third script is used to make sure the officer does NOT rush up to the PC if no crimes have been committed. She should not do this even without the script, but the Status 0 script confirms things.
> Status always starts at 0, assuming this is a new game without any criminal catches, or if one has a character who has never been caught doing any crimes, yet.
For those who add this Jail mod idea to your game. If the main officer comes rushing up once your character enters Megaton, you may
think there's an error here. But try toggling the console on, and then click on the arresting officer. Type GetMinorCrimeCount and press Enter. Do the same with GetMajorCrimeCount. Chances are, one or both of these will be high enough to cause the officer's behavior. And this is because your character has already committed some crime(s) in the past. Yes, this happened to me.

Like I said before, Fallout NPCs may forgive past crimes, but they never forget.
> Notice there is some leeway for minor crimes. The officer will do nothing if minor is below 3. This allows the PC to make a mistake. If trying to speak to an NPC for instance, but accidentally wind up stealing an owned object, the officer won't automatically come after the PC, assuming this happens just once. Stealing just one item can tally 1.00 or 2.00, so let's make 3.00 the official number of confrontation.
> Major crimes, on the other hand, will be regarded more quickly. If somebody slaps, slams, or shoots someone else, chances are they did so deliberately. Feel free to nudge either of these numbers to your liking.
> Major Crime works in a different manner than Minor Crime. If we are witnessed stealing our first item, Minor moves from 0.00 to 1.00 or 2.00. If we steal a second item and are witnessed, that number moves upward again. Major Crime is not as predictable. Sometimes it moves upward, and sometimes it does not. My test character assaulted and killed the Mercenary who stays in Craterside Supply for instance, causing Moira Brown to flee her shop. Major Crime jumped from 0.00 to 2.00. In an Elder Scrolls game, Crimegold would get much higher than this for a full-blown murder. Because of this, Major Crime's counts (in scripts below) is set up differently than the more-predictable Minor Crime.
A second NPC was killed by my Test guy, this time right in Megaton's central area. This time, Major Crime jumped from 2.00 to 6.00. I think the greater number resulted because there were more witnesses. ... So, it's hard to find an apt punishment which fits the major crime. Pwning that Mercenary resulted a Major of 2.00, which means somebody can get off lightly...200 caps paid, the way I've got this set up below, if nobody witnesses this pwning. This doesn't seem enough, right? But there's not much I can do about this; Beth hardcoded the way crime works in this game. Anyway, we'll get to all that later.
> Finally, note that there are rare times when the officer will have a different crime count than ordinary Megaton NPCs. ...Maybe clicking a Megaton Settler, and then checking for crimes with the console will yield a result of 0.00 or 2.00, whereas the officer will register 4.00. So always click on the arresting officer when trying to check for crime.
All of that is rather complicated, right?

Fortunately, the second officer is much simpler...
2m). Make a second NPC. This is going to be the officer who assists the main (arresting) officer, smacking our character around if Resist Arrest is chosen. In my game, this is a man with aaaComplianceOfficer as an ID.
2n). Toggle Respawns on, click OK, and reopen the officer.
The rest of those tabs can be arranged however you'd like, but make sure the second officer goes into the same MegatonResidentFaction and MegatonCrimeFaction as the arresting officer.
Place him or her into the same worldspace as the arresting officer and type a Reference ID. I called him aaaComplianceOfficerRef.
MAKING THE QUESTOBJECT window > Actor Data > Quest3a). Start a new quest (duh). ID is necessary, but Name is not. I am calling it aaaJailFallout3Quest.
Priority can be 90, just like it is in Elder Scrolls games when Legions try to arrest us. In theory, getting arrested takes precedence over everything, including the Main Quest, possibly.
3b). Start Game Enabled can stay on. Also, toggle Allow Repeated Conversation Topics on. Script Processing Delay can also be toggled.
3c). Start a script, like so...
scriptname aaaJailScript
short Arrest
short Timer1
short Timer2
short Timer3
short Timer4
short Timer5
short StartDay1
short StartDay2
short StartDay3
short StartDay4
short StartDay53d) Set the Script Type scroll-bar to Quest and close the editor window. Click OK, closing the Quest window. Reopen it, and find the quest in the scroll-bar. Click OK, and reopen.
Now we're going to add some more.
scriptname aaaJailScript
short Arrest
short Timer1
short Timer2
short Timer3
short Timer4
short Timer5
short StartDay1
short StartDay2
short StartDay3
short StartDay4
short StartDay5
Begin GameMode
;------------------------------------
;The script below deals with stopping combat against he PC, once the PC has paid for crimes.
;NPCs will sometimes try to fight the PC after crime has been committed. This script stops these fights.
If (Player.GetInWorldspace MegatonWorld == 1) && (aaaMegatonOfficerRef.Status != 8)
PlayerRef.StopCombatAlarmOnActor
EndIf
EndAs noted, the StopCombatOnActor script will cause any angry NPCs (who are trying to kill our PC after too many crimes committed) to STOP combat once the PC is in Megaton's plaza area, assuming the Officer's Status is not 8 (meaning the PC has not been banned from Megaton, yet). This will allow the officer to attempt arresting the PC without hassle. If this script is not used, and NPCs are actively trying to fight our character, this causes the officer to get confused, unable to deliver any dialog.
Note that this is OPTIONAL. For those who want to have NPCs fighting their characters in Megaton's plaza area at any time after crime, this script can be omitted. Again, the officer won't be able to do his/her job if this script is not present. 3e). Close and save the script. Click OK, closing the quest window. Save from the main toolbar. Reopen the quest. More is going to get added to this main script, but for now let's move on.
Topics Tab3f). Make a GREETING. This first greeting is going to be a generic sort which the officer says if the PC is not wanted for any crimes. "Lovely day, isn't it?" or whatever. Toggle Goodbye on. Conditions go like this...
GetMinorCrimeCount < 3.00 AND
GetMajorCrimeCount < 1.00 AND
GetIsID aaaMegatonOfficer == 1.00And that is all. Since Goodbye is toggled on, the officer will say this if we speak to her or him, without any dialog menus popping up, just like speaking to a Megaton Settler.
3g). Make a second GREETING. This one is much going to be much more interesting. The officer will say this one when first confronting the PC, during the arrest process. "STOP!!! You violated the law!"... Make some dialog which explains that pickpocketing, stealing, trespassing, assaults, and murder are all against the law. "You can pay me caps, go to jail, or resist arrest..."
Three conditions are needed...
GetMajorCrimeCount >= 1.00 OR
GetMinorCrimeCount>= 3.00 AND
GetScriptVariable aaaMegatonOfficerRef.Status == 1.00 OR
GetScriptVariable aaaMegatonOfficerRef.Status == 6.00
GetIsID aaaMegatonOfficer == 1.003h). In this greeting's Choices window, add three topics: aaaPayCaps, aaaGoToJail, and aaaResistArrest. Add these into the Editor ID window, as well.
3i). Let's start with the least threatening of those three choices: Pay Caps can go into the Topic Text slot. "You're being arrested for committing one or more crimes against the citizens and settlers of Megaton.... you really need to watch yourself...." and so on. Type some text explaining how much will need to be paid. In my game, lesser minor crimes start at 50 caps, while a full-on repeated assault or murder can rate as high as a thousand. I went into some detail, making sure the officer explained all the rules in her dialog.
Overall, I wound up with four scenarios: lesser Minor Crimes, greater Minor Crimes, lesser Major Crimes, and greater Major Crimes. If a character commits just one assault, or steals a couple items (and is caught) lesser Major or Minor crime gets registered. It is possible for a well-meaning character to simply pay for this one crime, never commit another one, and "lesser" crime where his or her crime counts shall stay.
If more crime gets committed, more than one or two incidents, this causes a greater scenario of Minor and/or Major crimes. Here we have somebody who is more of a dedicated criminal, so here is where their reputation shall stay: paying more money if caught, and going to jail for longer periods, as well.
Basically, lesser crime is only committed once. If the character continues to commit more crime, all subsequent arrests will be considered greater. Conditions: only one is needed, the same
GetIsID aaaMegatonOfficer == 1.00 as before.
3j). In the Add Topics window, add aaaPayCapsTopic2. Conversely, this can be added into the Choices window, along with aaaGoToJail and aaaResistArrest, for those who wish to retain maximum options.
3k). Add aaaPayCapsTopic2 into the Editor ID, and change Topic Text to "I am paying for my crimes. Here are your caps."
Dialog should be written in a way which warns the PC. If NPCs have started combat, they will have ceased due to that StopCombat script added into the main script IF the PC is in Megaton's plaza area. But they might resume fighting our character once the PC is back in some other cell. So her dialog goes:"If you have enough caps to pay for your crimes, you will be free to go, but it might be a good idea to get out of town for awhile. I'd recommend 3 days or more..."I have noted four scenarios for crime above. Overall, eight dialogs can be written for this topic; four for Minor Crime, and four for Major Crime. Let's start with Minor Crimes. Here are the four scenarios for lesser and greater Minor Crimes.
1). the PC has enough caps, and needs to clear less than 5.00 of minor crimes
2). the PC has enough caps and needs to clear 5.00 or more .. ." .. " .... "
3). the PC does not have 50 caps, for situation 1.
4). the PC does not have 100 caps, for situation 2.
Selections 1 and 2 require conditions as follows...
GetIsID aaaMegatonOfficer == 1.00 AND
GetMinorCrimeCount >= 2.00 AND
GetMinorCrimeCount < 5.00 AND
GetGold Reference: Player >= 50.00or
GetIsID aaaMegatonOfficer == 1.00 AND
GetMinorCrimeCount >= 5.00 AND
GetGold Reference: Player >= 100.003l). In the Result Script (Begin) box, type
Player.RemoveItem Caps001 50 or
Player.RemoveItem Caps001 100 respectively.
3m). In the Result Script (End) box for lesser Minor Crime type
Set aaaMegatonOfficerRef.Status to 2.
3n).In the Result Script (Begin) box for greater Minor Crime, add
Set aaaJailFallout3Quest.Arrest to 5 below the Remove Caps script.
3o). In the Result Script (End) box for greater Minor Crime, add
Player.MoveTo aaaJailBookingXMarkerHeading
If (aaaMegatonOfficerRef.Status == 1)
Set aaaMegatonOfficerRef.Status to 4
EndIF
3p). The final two situations, in which there aren't enough caps, can use the same GetIsIDs and GetMinorCrimeCounts, all of those can literally be CopyAll/pasted. But change GetGold to less than 50 caps, or less than 100 caps, depending on the amount of Minor Crimes allotted.
For either of these situations, add aaaGoToJail and aaaResistArrest into their Choice windows.
Click OK and save.
Steps 3i through 3p can be followed for Major Crime as well, making whatever changes you'd prefer. Obviously, paying caps for an assault or murder will be much more serious. In my game, committing one or two assaults (less than 5.00 of Major Crime) will require 200 caps of payment. Committing more than two assaults indicates that somebody was aggressive enough to try killing somebody, or seriously maiming him or her. The officer is going want a thousand caps to clear one's name.
This may sound harsh, but consider the fact that no NPC in Megaton is ever going to assault one of our characters. Only the Player (us) can commit crimes in Fallout 3. We are always the instigators. In TES IV: Oblivion, some NPCs could commit crimes and pay for them with their lives, Tilmo the Stablehand and City Swimmer are two perfect examples. Since food was not added into their inventories, they'd occasionally try to fill their bellies, which meant they'd steal whatever they could. Beth made sure to "fix" this for Fallout 3, which means NPCs can never commit true crimes in this latter game.
Note that pwning Mister Burke should be okay, since he is not part of any Megaton factions. I have not tested this personally though.
Conditions for the lesser Major Crime look like this...
GetIsID aaaMegatonOfficer == 1.00 AND
GetMajorCrimeCount >= 1.00 AND
GetMajorCrimeCount < 5.00 AND
GetGold Reference: Player >= 200Conditions for greater Major Crime ...
GetIsID aaaMegatonOfficer == 1.00 AND
GetMajorCrimeCount >= 5.00 AND
GetGold Reference: Player >= 1000And don't forget to add the appropriate amount of caps removed in the Result Script (Begin) box.
Add
Set aaaMegatonOfficerRef.Status to 2 into the Result Script (End) for lesser Major Crime.
Add
Set aaaJailFallout3Quest.Arrest to 5 in the Result Script (Begin) box for greater Major Crime.
Add ...
Player.MoveTo aaaJailBookingXMarkerHeading
If (aaaMegatonOfficerRef.Status == 1)
Set aaaMegatonOfficerRef.Status to 4
EndIF
...in the Result Script (End) box for greater Major Crime.
3q). Toggle Goodbye on for both. Click OK and save.
Unfortunately, the game does not separate assaults and murders into two separate categories; both of these are considered Major Crime. So at this writing, I do not know how to make murders much more serious (more time, more caps needed) from assaults. The game does include several functions which include Murder and Killer (such as IsKiller) but all of these require reference IDs on NPCs to work, instead of simply working globally. I'm not adding a reference to every NPC in Megaton, that's silly.
The answer for now is to set a higher level of Major Crime, which breaks down into lots of assaults or one (or more than one) murder, at least as far as dialog is concerned.
3u). Make a third GREETING for the officer. This will be the final one, which she says if spoken to, after an arrest process has been completed (caps paid, time spent in jail). In my game, she simply says "I've got my eye on you..."
3v).. Toggle Goodbye on. Conditions go like this...
GetIsID aaaMegatonOfficer == 1.00 AND
GetScriptVariable aaaMegatonOfficerRef.Status == 2.00 OR
GetScriptVariable aaaMegatonOfficerRef.Status == 5.00 OR
GetScriptVariable aaaMegatonOfficerRef.Status == 7.00RENDER window4a). Go into the jail's cell. In the Object window edit a note.
4b). Describe some rules about how crime works in Megaton, and what is expected of the prisoner upon release. Basically, this is a list of rules. Something which explains how long each sentence shall last, corresponding to what sort of crime has been processed. Anything which the character possessed before arrest has now been put into that Evidence Locker, so explain this in the note's text as well.
Since a robot is going to get added into the jail, add some text explaining that the robot is who we'll speak to for food, cigarettes, and also to get out of jail when the sentence is over. There will eventually be an actual game message which explains how to get out of jail, too. All of that is coming.
4c). Drag this note into the jail's cell, behind bars.
OBJECT window > Actor Data > Quest5a). Go into the Topics tab and find aaaGoToJail. This topic is somewhat simpler than paying caps, fortunately. Four Infos will need to be written up instead of eight. Each of these four Infos correspond to lesser or greater Minor Crime, or lesser / greater Major Crime.
Go To Jail can be added into the Topic Text slot.
The first Info is going to be used for Minor Crime less than 5. For most characters who aren't full criminals, but have made a slip-up, this is going to be the jail term for a first offense. "You've made some mistakes, it happens. Just make sure it doesn't happen again." In my game, the penalty for this is just one day. "I hereby sentence you to the term of one day..." the officer says.
GetIsId aaaMegatonOfficer == 1.00 AND
GetMinorCrimeCount >= 2.00 AND
GetMinorCrimeCount < 5.00Toggle Goodbye on.
5b). In the Result Script (Begin) type or paste
Set aaaFallout3Quest.Arrest to 1
aaaMegatonCellDoorRef.Lock 100
aaaMegatonCellDoorRef.SetOpenState 0.
5c). In the Result Script (End) box type
Player.RemoveAllItems aaaEvidenceLockerRef
Player.AddItem OutfitWasteland01 1
Player.MoveTo aaaMegatonJailPlayerXMarker
Set aaaMegatonOfficerRef.Status to 2All the PC's items are removed and stored into that locker. Any stolen items should have also been removed by this point, and erased entirely from the game, however, sometimes they might slip by the officer or any NPCs who initially witnessed any crime(s).
OutfitWasteland01 is what the PC wears while in jail. It is important to make sure RemoveAllItems comes before the player gets that jail outfit, otherwise the game will remove these clothes as well. 5d) Three more Infos can get added: one for Minor Crimes of 5.00 or more, one for Major Crimes of less than 5.00, and one for Major Crime of 5 or more. Technically, these greater major crimes can equate to attempted murder or actual murder. These three infos will tally three days, ten days, and one month in jail respectively.
5e). Let's start with Minor Crimes greater than 4.00. Dialog can be more menacing. Our toon has stolen or pickpocketed
multiple items, or trespassed for an extreme amount of time, ignoring somebody's warnings about this. So the officer isn't so nice. "You dirty thief. You mongrel of a trespasser. You have committed several minor crimes against the residents of Megaton. You are going to be incarcerated for three whole days.... "
GetIsID aaaMegatonOfficer == 1.00 AND
GetMinorCrimeCount >= 5.005f). Now,
Set aaaJailFallout3Quest.Arrest to 2 goes into the Result Script (Begin) box instead of aaaJailFallout3Quest.Arrest to 1. Make sure
aaaMegatonCellDoorRef.Lock 100 goes into this box, as well.
5g). Three of the four scripts which went into the lesser Minor Crime Result Script (End) box can simply be copy/pasted. Do not copy/paste the aaaMegatonOfficerRef.Status script.
5h). Follow the same process for Major Crime, making sure to change
Set aaaJailFallout3Quest.Arrest to 3 and
4 respectively, for lesser and greater. Everything else gets copy/pasted, but again, leave the officer's Status script out of greater Major Crime's (End) box.
Click OK and save. Now, to make the officers fight our character, if Resist Arrest is chosen.
Main toolbar > Character > Packages6a). Start a new package. I'm going to name its ID aaaResistArrestPackage.
6b). Change Package Type to Use Weapon.
6c). Toggle Any Object on, and find whichever weapon the officer shall use in the Object ID scroll-bar. I put WeapPoliceBaton in there. The weapon used in this bar MUST also be a weapon in the officer's inventory, otherwise the officer will simply try to use their fists. Note that if the officer has a second weapon (such as a gun) the officer may switch to this weapon type, especially if the first weapon is a melee piece, and some distance is involved.
6d). Toggle Target on, and find PlayerRef in the Ref scrollbar.
6e). In the Fire Count area there are two choices: Repeat Fire will cause the officer to keep using that weapon indefinitely, as long as the package is running. Number of blows will cause them to stop after X number of weapon swings, or rounds have been fired.
6f). Flags tab: toggle Always Run, and Weapon Drawn on. Enable Fallout Behaviour gets toggled completely off.
6g). Click OK. This package should
not be attached to the officer, it will (instead) be triggered through a script.
Reopen the Quest window.
7a). aaaResistArrest is the final topic, and it's the easiest of all; we only need one Info. Type some menacing dialog. Since a second officer is going to join beating down the PC, this dialog should include that information. "You want to resist? Fine. But now my deputy is going to assist!"
GetIsID aaaMegatonOfficer == 1.00 AND
GetMajorCrimeCount >= 1.00 OR
GetMinorCrimeCount >= 1.007b). In the Result Script (End) box type
Set aaaMegatonOfficerRef.Status to 37c). Toggle Goodbye on, Click OK. save.
Note:
If other Megaton NPCs have also begun to attack before the arrest, they will continue to do so, unless the main script gets modified to include Status 3 as well as Status 2! However, they generally will not follow us out into the Wasteland.I and an online friend have experimented with Resist Arrest quite a lot, going in and out of various cells and whatnot, just to see how far the officers will keep following our characters, continuing pursuit. Since NPCs don't follow the PC very well into different cells in this game, it is possible to run into (let's say) Moriarty's and get a breather, maybe use a Stimpack, assuming no other NPCs are attacking. It is also possible to leave this portion of the quest as-is. Yes, the officers have trouble following, but the problem is, eventually they WILL follow. And they'll follow
everywhere, including the wasteland.
This will get fixed later on via scripts. Or you can just leave it this way, for those who want to try to pwn the officers outside of society. If they happen to follow us outside of Megaton, and encounter some enemy. Let's say, a radscorp. They will focus then on fighting this radscorp instead of us. Eventually it'll be their doom, if this doesn't get fixed later on.
Another possibility is to make other referenced NPCs (such as Jericho and Lucas Simms) join in the fight while our toon resists arrest! I have not added this into my game, but for those who want to make a real hardcore option, this is possible too.
But first, here's how to get the officers to do their beat-down.
7d). Open up the main (arresting) officer's script. Some of what's below has already been written, if you've been following this guide so far. But some new material also gets added...
scriptname aaaEnforcementOfficerScript
; Status 0 -- Not enough crime witnessed. Officers sandbox. Most “good” PCs remain Status 0 forever.
; Status 1 -- The PC has possibly been caught committing their first crime, Major or Minor.
; Status 2 -- Caps paid or jail chosen for 'lesser' Minor or Major crime. PC stays in Megaton if caps paid.
; Status 3 -- Resist Arrest chosen. 3-day timer starts, officers fight PC if Megaton's plaza entered.
; Status 4 -- Caps paid for 'greater' Minor or Major crime. PC teleported to "booking" area of jail.
; Officers will revert to Status 3 if PC re enters Megaton, while Status is 4.
; Status 5 -- Timer concludes after 3 days, causing officers to sandbox. 5 Can result from Status 3 or 4.
; Status 6 -- Next-to-last arrest process. Works in similar way as Status 1.
; Status 7 -- Last strike. If PC is arrested during 7, cannot reenter Megaton without getting attacked.
; Status 8 -- PC is 'banned' from Megaton. :-(
short Status
Begin GameMode
;------------------------------------------------------------
; Status 1 handles the first "lesser" arrest process
; if PC is caught committing at least two Minor, or one Major crime.
; PC remains in Megaton
If (Status == 0) && (Player.GetInWorldspace MegatonWorld == 1)
If (GetMinorCrimeCount >= 3) || (GetMajorCrimeCount >= 1)
Set Status to 1
EndIf
EndIf
If (Status == 1)
aaaMegatonOfficerRef.AddScriptPackage aaaArrestPlayerPackage
EndIf
;---------------------------------
; Status 2 causes the main officer to sandbox after arrest has taken place from Status 0 to 1.
; Triggers from lesser crime.
; PC remains in Megaton, unless he/she also went to jail.
If (Status == 2)
If (GetMinorCrimeCount < 5) || (GetMajorCrimeCount < 4)
aaaMegatonOfficerRef.AddScriptPackage aaaMegatonOfficerSandbox
EndIf
EndIf
;---------------------------------
; This script causes main officer to arrest PC a first time (potentially) for greater crime / Status 0.
; Or a second time (potentially) if lesser crime already been processed.
; PC is teleported outside of Megaton to the jail's 'booking' area, and must stay out of town 3 days.
If (Status <= 2) && (Player.GetInWorldspace MegatonWorld == 1)
If (GetMinorCrimeCount >= 5) || (GetMajorCrimeCount >= 4)
Set Status to 1
EndIf
EndIf
;---------------------------------------
; Status 3 makes both officers beat down the PC after Resist Arrest is chosen
; The quest's main script starts a timer which ends after 3 days.
; Officers will cease attacking after 3 days
; The officers will only fight if the PC enters Megaton's plaza area.
If (Status == 3) && (Player.GetInWorldspace MegatonWorld == 1)
aaaMegatonOfficerRef.AddScriptPackage aaaResistArrestPackage
aaaComplianceOfficerRef.AddScriptPackage aaaResistArrestPackage
Set aaaJailFallout3Quest.Arrest to 5
EndIf
;--------------------------------------------------
; Status 4 causes officers to attack if PC enters Megaton before main script timer has reset Arrest 5.
; Arrest == 5 and Status 4 trigger through dialog, from Resist Arrest and/or greater Pay Caps.
If (Status == 4) && (Player.GetInWorldspace MegatonWorld == 1)
Set Status to 3
EndIF
;--------------------------------------------------
; Status 5 is similar to Status 2. Both remain "neutral" if PC commits no more crimes.
; IF PC gets caught during 5, will be wanted for arrest two or three times by now.
If (Status == 5) && (Player.GetInWorldspace MegatonWorld == 1)
If (GetMinorCrimeCount < 7) || (GetMajorCrimeCount < 8)
aaaMegatonOfficerRef.AddScriptPackage aaaMegatonOfficerSandbox
aaaComplianceOfficerRef.AddScriptPackage aaaMegatonOfficerSandbox
EndIf
EndIf
If (Status == 5) && (Player.GetInWorldspace MegatonWorld == 1)
If (GetMinorCrimeCount >= 7) || (GetMajorCrimeCount >= 8)
Set Status to 6
EndIf
EndIf
;-------------------------------------------------------
; Status 6 is the next-to-last stage of arrest. Three or four strikes, by now.
; Works similar to Status 1.
If (Status == 6)
aaaMegatonOfficerRef.AddScriptPackage aaaArrestPlayerPackage
EndIf
;--------------------------------------------------
; Status 7 could mean final arrest, and last straw.
; If PC gets arrested during this phase, he or she is essentially BANNED from Megaton.
; Similar to Status 5
If (Status == 7) && (Player.GetInWorldspace MegatonWorld == 1)
If (GetMinorCrimeCount <=9) || (GetMajorCrimeCount <= 12)
aaaMegatonOfficerRef.AddScriptPackage aaaMegatonOfficerSandbox
aaaComplianceOfficerRef.AddScriptPackage aaaMegatonOfficerSandbox
EndIf
EndIf
If (Status == 7) && (Player.GetInWorldspace MegatonWorld == 1)
If (GetMinorCrimeCount > 10) || (GetMajorCrimeCount > 12)
Set Status to 8
EndIf
EndIf
;--------------------------------------------
; Status 8 means PC cannot enter town w/o being attacked
If (Status == 8) && (Player.GetInWorldspace MegatonWorld == 1)
aaaMegatonOfficerRef.AddScriptPackage aaaResistArrestPackage
aaaComplianceOfficerRef.AddScriptPackage aaaResistArrestPackage
LucasSimmsRef.AddScriptPackage aaaResistArrestPackage
EndIF
; ----------------------------------------------------------------------
;The scripts below deal with keeping the officer from running up like a maniac when not under arrest.
;Status is 0 by default, assuming the PC hasn’t got a Crime Count when the jail mod is activated.
If (Status == 0)
aaaMegatonOfficerRef.AddScriptPackage aaaMegatonOfficerSandbox
aaaComplianceOfficerRef.AddScriptPackage aaaMegatonOfficerSandbox
EndIf
End> Some may notice it is possible to 'break' the way these arrests progress from Status 0 to Status 8, especially with Minor Crime. If somebody is witnessed stealing something, and the witness, or witnesses, starts beating the crap out of our character, I am assuming our character will be like most thieves. Most thieves in this situation will be upset that they've been caught. They'll get the heck out of that cell.
However, it is possible for somebody to stay in that one cell and keep stealing stuff while being witnessed, causing Minor Crime to rise and rise and rise to the maximum level of 8. I am assuming most gamers aren't going to do this. This sort of criminal is going to be withstanding some sort of beating or shooting while he/she is stealing all these items.
IF somebody is going to take this route, so that the maximum level of crime is recorded right away, what'll happen is the officer will arrest the player-character once this character is done stealing, and walks back into MegatonWorld. The PC goes to jail or pays caps. Gets teleported out of town. Once the timer resets, and the PC reenters town, guess what? He / she will immediately be arrested again, since MinorCrimeCount is past where the scripts above can record. Maybe there will be a third and fourth arrest as well.
It is possible to fix this somehow, of course. Anything is possible with scripts. But I am not going to do this in my own game, because it's too much work, and I've already been working on this project for over 5 months! For me, the answer is simple. Any thief I roll won't want to stick around if he or she has been caught stealing.
MAKING THE JAILBOTOBJECT window > Actors > Creature > Robot > Protectron8a). Right-click > Edit CProtectron, and select an ID and Name. I am calling it aaaJailbot and Jail Bot. Get it?
8b). Toggle...
No low level processing off.
Respawn on.
Allow PC Dialogue on.
8c). Traits tab: All the scroll-bars have already been set, so leave these alone. Change Alignment to Good.
8d). Stats tab: The robot is set to Level 3 by default, so it's an easy one to beat, for those who wish to do so. Problem is, if it's been destroyed before the PC gets thrown in jail... I am setting it up so that this is a bad idea. Reason is, the jailbot is going to be the one who eventually unlocks the jail's cell door, through dialog. It will also dispense food, for those who use mods which require eating. So for those modders who wish to keep all of that intact, set the Jail Bot to Essential.
8e). Factions tab: Remove from RobotFaction and add into MegatonResidentFaction and MegatonCrimeFaction.
8f). AI Data tab: Unaggressive, Average, Helps Nobody, and Neutral are fine.
8g). AI Packages tab: Remove any AI packages. These are going to be added in a later tutorial.
Everything else (Inventory, etc.) can be kept as-is.
8h). Click OK, then drag the Jail Bot into the jail cell.
8i). Double left-click on the bot. Toggle Persistent Reference on. Click OK. Save.
FINISHING THE JAIL QUESTOBJECT window > Miscellaneous > Message 9a). Right-click > New into the Editor ID window. The MESG panel pops up.
9b). ID can be aaaMinorCrimeOneDay. This is going to be used for minor crime less than 5.00. Copy that ID so it can be pasted into the main script later.
9c). Title can be Go To Jail. And for Message Text I just typed "I have been thrown in jail for one day."
Toggle Message Box off.
9d). The Time Displayed slot has been set to 2 by default, meaning that the message gets shown for 2 seconds. This ain't enough for my sorry eyes, so I boosted this to 20, just so I have enough time to read each message.
Click OK. Three more MESGs can be made, corresponding obviously to minor crime more than 4.00, Major Crime less than 5.00, or attempted murder.
9e). A final MESG can be made to indicate the jail term has ended. ID in my game is aaaFreeFromJail. Follow steps 7b through 7c to make a "My jail term has now ended" message.
9f). Hmm, one more message. I made aaaCrimeClearedMessage, which is going to show if the criminal resists arrest, or is moved out of town after paying caps. This message says "Three days have passed. It may be safe for me to reenter Megaton by now."
OBJECT window > Actor Data > Quest > Quest Data10a). Reopen the main script. Here is what it'll look like in total.
scriptname aaaJailScript
short Arrest
short Timer1
short Timer2
short Timer3
short Timer4
short Timer5
short StartDay1
short StartDay2
short StartDay3
short StartDay4
short StartDay5
Begin GameMode
;------------------------------------
;Script below deals with stopping combat against PC, once PC has stepped into Megaton's plaza.
;NPCs will sometimes try to fight PC after crime has been committed. This script stops these fights.
If (Player.GetInWorldspace MegatonWorld == 1)
PlayerRef.StopCombatAlarmOnActor
EndIf
;------------------------------------------------------
;The script below deals with Minor Crimes of 4.00 or less
;This causes the PC to get locked in jail for 24 hours
; Officer's Status remains at 2.
If (Arrest == 1) && (Timer1 == 0)
Set Timer1 to 1
Set StartDay1 to GameDaysPassed
ShowMessage aaaMinorCrimeOneDay
EndIf
EndIf
If (Timer1 == 1)
If ((GameDaysPassed - StartDay1) >= 1)
Set Timer1 to 0
Set Arrest to 0
ShowMessage aaaFreeFromJail
EndIf
EndIf
;------------------------------------------------------
;The script below deals with Minor Crimes of 5.00 or more
;This causes the PC to get locked in jail for 3 days
If (Arrest == 2) && (Timer2 == 0)
Set Timer2 to 1
Set StartDay2 to GameDaysPassed
ShowMessage aaaMinorCrimeThreeDays
EndIf
EndIf
If (Timer2 == 1) && (aaaMegatonOfficerRef.Status == 1)
If ((GameDaysPassed - StartDay2) >= 3)
Set Timer2 to 0
Set Arrest to 0
Set aaaMegatonOfficerRef.Status to 5
ShowMessage aaaFreeFromJail
EndIf
EndIf
If (Timer2 == 1) && (aaaMegatonOfficerRef.Status == 6)
If ((GameDaysPassed - StartDay2) >= 3)
Set Timer2 to 0
Set Arrest to 0
Set aaaMegatonOfficerRef.Status to 7
ShowMessage aaaFreeFromJail
EndIf
EndIf
;------------------------------------------------------
;The script below deals with Major Crimes of 4.00 or less, namely assaults
;This causes the PC to get locked in jail for seven days.
; Officer's status remains at 2
If (Arrest == 3) && (Timer3 == 0)
Set Timer3 to 1
Set StartDay3 to GameDaysPassed
ShowMessage aaaMajorCrimeOneWeek
EndIf
EndIf
If (Timer3 == 1)
If ((GameDaysPassed - StartDay3) >= 7)
Set Timer3 to 0
Set Arrest to 0
ShowMessage aaaFreeFromJail
EndIf
EndIf
;------------------------------------------------------
;The script below deals with Major Crimes of 5.00 or more, namely excessive assaults and murders
;This causes the PC to get locked in jail for one month
If (Arrest == 4) && (Timer4 == 0)
Set Timer4 to 1
Set StartDay4 to GameDaysPassed
ShowMessage aaaMajorCrimeOneMonth
EndIf
EndIf
If (Timer4 == 1) && (aaaMegatonOfficerRef.Status == 1)
If ((GameDaysPassed - StartDay4) >= 29)
Set Timer4 to 0
Set Arrest to 0
Set aaaMegatonOfficerRef.Status to 5
ShowRaceMenu
ShowMessage aaaFreeFromJail
EndIf
EndIf
If (Timer4 == 1) && (aaaMegatonOfficerRef.Status == 6)
If ((GameDaysPassed - StartDay4) >= 29)
Set Timer4 to 0
Set Arrest to 0
Set aaaMegatonOfficerRef.Status to 7
ShowRaceMenu
ShowMessage aaaFreeFromJail
EndIf
EndIf
;-------------------------------
;The script below is what cancels the Officers' Resist Arrest AI, causing them to mellow.
;This allows us to reenter Megaton.
If (Arrest == 5) && (Timer5 == 0)
Set Timer5 to 1
Set StartDay5 to GameDaysPassed
EndIf
EndIf
If (Timer5 == 1) && (aaaMegatonOfficerRef.Status <= 4)
If ((GameDaysPassed - StartDay5) >= 3)
Set Timer5 to 0
Set Arrest to 0
Set aaaMegatonOfficerRef.Status to 5
ShowMessage aaaCrimeClearedMessage
EndIf
EndIf
If (Timer5 == 1) && (aaaMegatonOfficerRef.Status == 6)
If ((GameDaysPassed - StartDay5) >= 3)
Set Timer5 to 0
Set Arrest to 0
Set aaaMegatonOfficerRef.Status to 7
ShowMessage aaaCrimeClearedMessage
EndIf
EndIf
EndNote Arrest 4. When its timer concludes, ShowRaceMenu allows us to change our character's hairstyle / looks. After a month in jail, hair probably won't look the same.10b). Save, Click OK (closing the Quest window) and save.
The final touch is to give the Jail Bot some dialog and responsibilities. This bot will be in charge of feeding the PC, dispensing cigarettes, and finally, unlocking the jail. I am also going to give the Jail Bot a Patrol package. Patrols get described in the post directly below this one.
OBJECT window > Actor Data > Quest > Topics tabStart a new quest. This quest needs to be separate from the Jail quest already written. Keep in mind that the way I am writing this will make the PC stay in jail in REAL TIME.

This idea is hardcore, of course. Those who want to spend all their time at once can simply sleep in the bed over and over, or come up with a way to move time forward more quickly, somehow.
11a). Three GREETINGs are needed. First one will deal with dinner. The PC is going to have a choice of eating, not eating, or getting a pack of cigarettes. "You ... look ... starved. Want .... some .. grub?" goes the dialog.
11b). Toggle Say Once a Day on.
11c). Conditions are as follows...
GetCurrentTime > 17.000 AND
GetCurrentTime <= 22.000 AND
GetIsID aaaJailBot == 1.00Note that the Jail Bot will dispense food or ciggies even if the PC is not in jail. To fix this, add another short variable into the main script. Call it Incarceration. You'll then need to go through the rest of the main script, adding Set aaaJailFallout3Quest.Incarceration to 1 for each of the four timers. A GetQuestVariable can then be added to the topic for food & cigs. Make sure to turn this off once the PC gets out.
11d). In the Choices window, add aaaFoodYes, aaaFoodNo, and aaaSmokingTopic. Or any other topics desired.
11e). Let's start with aaaFoodYes. "Yes I am hungry" can go into the Topic Text slot. "We have an .... excellent. Selection of .... all kinds of grub," says the Jail Bot.
Toggle Say Once a Day and Goodbye on.
11f). The same conditions can be copy-pasted from the bot's initial GREETING.
11g). In the Result Script (End) box, type whatever is desired. I am adding. Player.AddItem JunkFood 1, Player.AddItem BrahminSteak 1, and Player.AddItem NukaCola 1.
11h). "No I am not hungry," can go into the Topic Text slot for aaaFoodNo. This is for roleplaying only, for those who have a toon who is some sort of hunger strike.
Only the bot's GetIsID is needed here. Toggle Goodbye on. Toggle Say Once a Day on.
Renee
Nov 28 2020, 03:00 AM
I have found a really good Daggerfall tutorial which was originally written in Beth's forums by BOX MAAAN. I'm copy/pasting most of it, so if I ever get involved with Daggerfall again I'll have this guide ready.
------------------------------------
INSTALLATION:
This is the easy part. Just check out "DaggerfallSetup"; it's an installer that comes with a preconfigured DOSBox and a bunch of unofficial patches, so after everything is all installed all you have to do is double-click a shortcut and you're in the game. You can download Daggerfall from Bethesda's official website, but I'd strongly recommend just sticking with DaggerfallSetup. And don't worry, it's completely legal.
It also comes with a few extra goodies. Once you get into the game and make your first save, open the Eye of Argonia application in your Daggerfall installation folder and run it to patch your savegames to increase your view distance. Don't ever touch the detail slider on any of your saves, before or after running this patch, otherwise it won't work. And if your save ever gets screwed up in some way, try using Fixsave on it before giving up.
CONTROLS:
The first thing you want to do when you wake up in Privateers' Hold is customize the control scheme to something more to your liking. With a little tinkering, you can make Daggerfall's controls feel positively modern - which for me is a huge help in making the game enjoyable. I can't tell you what your ideal control scheme is, but�€�
�—�
Turn on mouse look. For the love of Arkay, turn on mouse look. Daggerfall was one of the earliest games to feature full mouse look, and don't you ever take it for granted.
�—�
Remap WASD so that it uses "Slide Left/Right" instead of "Turn Left/Right". Mouse is covering the camera, so for the most part you can forget about the Turn Left/Right mappings.
�—�
Since you're using mouse look, you'll need to use either "Activate Center Object" to interact with things (which works just like it does in modern Elder Scrolls games), or "activate cursor" to temporarily toggle off mouse look and bring up the cursor to click on whatever you want to interact with. I generally just use "Activate center object", but Daggerfall doesn't have a crosshair it can sometimes be tricky to activate those little switches and stuff - "activate cursor" comes in handy there.
�—�
You could also enable fullscreen to disable that bar at the bottom of the screen with all of your interact options and the wait/rest menu - it's not as useful if you're using mouse look, and in fullscreen your HUD will just be you health/magicka/fatigue bars and your compass, which looks nice.
�—�
"Float Up/Down" are used for when you're underwater, or under the effects of a levitation spell.
�—�
I've honestly never used the "steal/grab/info/talk" mode keys - generic activate seems to be pretty smart about what you're doing when you click on something, but maybe you'll need "Steal mode" to pickpocket people. Never knew if just crouching/sneaking let you pickpocket people like in the later games.
�—�
As it happens, "Sneak" doesn't put you in a stealth crouch like the later games, it just slows down your speed so you can tip-toe around, since faster movement means more noise. Similarly, your starting speed isn't as bad as in Morrowind so "run" feels like actual sprinting. And the fatigue drain from running isn't too bad, so feel free to run around a lot. I never had much use for "crouch" or "slide", but you will need crouch for a dreaded wall opening in Wayrest Castle.
�—�
You need to be moving when you jump if you want to jump in any direction other than straight up.
�—�
"Cast Spell" brings up your spell list. Double-click a spell (or hit Enter with that spell highlighted) to cast it: on-self effects (and Open, for some reason) will automatically cast, but on-touch and ranged spells are only loaded; you'll have to hit the "activate center object" key to fire. On-touch requires a valid target (so with an enemy within attacking range), on-target can be fired regardless. Recast spell loads whatever spell you last cast. "Abort spell" unloads any spell you've loaded but haven't cast, as well as refunds the magicka cost. "Use magic item" works like "Cast spell", but instead of opening the spellbook it opens a list of magic items in your inventory to load spells from.
�—�
"Rest" is how you wait to pass time. Resting restores your health/magicka/fatigue, loitering doesn't but it passes the time just the same. Loitering is for when you need to pass the time in a city until the shop/guild you want is open - don't rest inside a city, or you'll get arrested for vagrancy. You can't loiter for more than three hours at a time, because Daggerfall hates you. Just re-enter the menu every three hours.
�—�
"Transport" opens a menu where you can choose whether to walk, or mount your horse and/or cart. You need to buy a horse and cart at any general trader, and then when you do they'll exist in hammerspace until you mount them with this key - can't do it in interiors of course, and remember if you're riding on your horse or cart you won't be able to grind your Running/Jumping skills. If that's important to you. Also, if you own a ship, you can use this menu to basically teleport to it.
�—�
Think of "automap" as the local map from the modern games - a top-down look at the city or interior space you're hanging out in. The automap inside dungeons is super useful, and even more frustrating to actually use; but it's not hard to get used to. The travel map is the world map, and you'll use it to, yup, fast-travel. Which isn't optional, by the way. And don't misspell the whacky fantasy name of the location you're traveling to, the map isn't smart enough to guess what you were saying.
�—�
You can access your inventory menu from the character sheet, in case you need to be conservative with how many buttons you have (for instance, if you're trying to use a controller). Status tells you the time, date, and your current health. "Logbook" shows you any active quest notes, and your main quest progress. "Notebook" is for any dialog you save, but I honestly haven't really used it all that much.
�—�
Oh right, weapons. "Ready weapon" is just the draw/sheathe key. You can equip two one-handed weapons, and switch between them with "switch hand". "Swing weapon" is the part everyone gets confused on, but IMO once you know how to use it combat feels great. You don't attack by pressing "swing weapon", you hold down that key while you move the mouse to attack. So just think of it as "attack mode": with "swing weapon" held, you use your mouse to attack, and with it up, you use your mouse to look around normally. For reference: Mouse up is a thrust (lower damage, better accuracy), mouse down is a chop (higher damage, lower accuracy), diagonal attacks do slightly more damage with slightly less accuracy, and horizontal attacks are neutral. You can even just hold down the "swing weapon button" and draw circles with your mouse, and you'll get by in most cases.
CHARACTER CREATION:
My favorite feature in Daggerfall is the most open-ended, and most utterly broken, character creation in the entire series. If you pick a preset class via list or personality test, you'll have a fine experience; but in this guide I want to go into detail about how to get the most of the custom classmaker, with and without exploits. I'll also touch on the background questions that come after deciding your character class, which has some important parts to it.
Attributes: distribution is pretty straightforward, any points you add to an attribute must be subtracted from another. Attributes can't go higher than 75 or lower than 10 here. (Exploit: if you hit U in the classmaker screen, it resets the counter for attribute distribution to zero while keeping any changes you made. Useful for creating a god character, but this is indisputably cheating.) UESP does a fine job of describing each attribute, but a few notes:
�—�
Speed governs attack speed, not just movement speed. Since the combat is dice-roll based like Morrowind, it may be more beneficial to boost speed and your frequency of attacks than it is to boost damage with Strength.
�—�
I'd say the biggest dump stat would have to be Personality. It affects barter prices, but finding enough gold is hardly a problem. It also affects your ability to get information from people, which basically amounts to asking for directions. Which isn't difficult to do, at all.
Skills: Daggerfall has 35 skills, more than any other Elder Scrolls game, but it also has the highest number of useless skills in any Elder Scrolls game. You may have difficulty filling out your list of class skills with things you actually care about. A few notes:
�—�
Since combat is dice-roll based, your best bet is to pick one weapon skill and just stick with that. Of these, Long Blade is probably the best, but keep in mind that bladed weapons deal half damage to Skeleton Warriors (but not any other skeletal enemies, like Liches, I think). And there are no artifacts that use the Axe skill, if that's something you care about.
�—�
Lockpicking is a pretty crummy skill even if you're a thief-type character. It's automatically checked at any locked doors, and to my knowledge even if you raise it up it's not very reliable and doesn't work on any magically sealed doors. You can bash any door you could potentially lockpick, so just do that and have an Open spell handy for any magic locks.
�—�
Language skills are useless. Don't even bother. For reference, a language skill is checked when you approach an applicable enemy with your weapon down, and if the check is successful, all that happens is that particular enemy isn't hostile to you. And to be honest, I can count the number of Centaurs and Dragonlings I've seen in this game on one hand, so their language skills are even more useless.
�—�
It's worth checking UESP to see the schools of any spells you plan on casting. Daggerfall's spell schools are�€� bizarre, from the perspective of a modern Elder Scrolls player.
Difficulty dagger: this shows how much time it will take for your character to advance their skills. It goes up when you take an advantage or increase your HP gain, and goes down when you take a disadvantage or lower your HP gain. Your class isn't acceptable if the dagger is ever in the red.
Hit Points per level: the amount of HP you gain with each level up is anywhere between this number and half of this number. Plus your bonuses from Endurance. I've always liked playing tanky, so I generally pump this up, but it's your call how high you want to go. I wouldn't go extremely low, though.
Advantages and disadvantages: this is where you can really break the game.
�—�
Acute Hearing, Adrenaline Rush, and Athleticism aren't really worthwhile advantages.
�—�
"Bonus to Hit" is good, but I wouldn't suggest picking it for Animals. That may give you a small boost early on, but animals are generally the weakest creatures in this entire game. Likewise, this means animals are the best group to take the "Phobia" disadvantage for, since they're the least threatening option and all of the phobias are worth the same on the difficulty dagger.
�—�
Take "Expertise In" whatever weapon skill you chose for your class. This will increase your accuracy even further with that weapon type, which will remain useful for the majority of the game. Likewise, you can take "forbidden weapon type" for any weapon types you never, ever plan on using to get more mileage out of your difficulty dagger. Maybe don't forbid Short Blades, though.
�—�
Increased Magery is essential if you ever plan on casting more than just a few spells. By default, your max magicka is only half of your Intelligence, which is barely good enough for the weakest spells. Don't be afraid to go all the way to 3x INT in spell points. I strongly recommend you have at least enough magicka for basic spells.
�—�
Immunity, Resistance, Low Tolerance, and Critical Weakness are pretty self-explanatory, but a few things to clear up: "Magic" in this sense is an element alongside poison, fire, frost, or shock; it's not all-encompassing like it is in Oblivion or Skyrim. By glancing at the bestiary on UESP and looking at all of the enemy spells, it seems like the best element to take a weakness to is Frost - it's the least common element among higher level spellcasters, so you'll only ever need to worry about Ice Daedra after you level up a little. Most of the other elements are about equally common, although Poison seems to be the second least common after frost.
�—�
Also! Feel free to take a critical weakness to paralysis. All you need if you ever get paralyzed, is to cast Free Action. Which is one of the cheapest spells in the game, and easy for even non-mages to cast. Plus, if you start as a High Elf, your racial immunity to Paralysis completely overrides any class weakness to it you pick, for some free space on the difficulty dagger. That's kinda exploity, though, sooo...
�—�
Regenerate health, I think, isn't worth the chunk it takes out of your difficulty dagger. Damage health, similarly, I don't think is worth taking in any context. Worth mentioning that for the purposes of these effects, and any other advantage/disadvantage, "darkness" means not just night, but inside every dungeon. Which is where 90% of the game takes place, and where your choices here really matter.
�—�
Rapid Healing, on the other hand, might be a worthy timesaver. It increases how much HP you heal for each hour you rest, and since most quests have a time limit, this will give you some extra breathing room to rest up without running out the clock. It doesn't increase how quickly you recover fatigue or magicka from resting, though, so if those are tapped out it won't make a difference.
�—�
Spell absorption is weird. Your chance to absorb spells half your INT+WIL, but you can also absorb the magicka from your own area-of-effect spells if you get caught in the splash damage. And any magicka absorbed over your max directly damages your health. Magicka burn, it is called.
�—�
I don't recommend taking "Forbidden Armor Type: Plate" as that forbids you from everything but the first two tiers of armor. The classmaker makes it seem like leather, chain, and plate are Daggerfall's version of light, medium and heavy armors; but there aren't any armor skills, armor only factors into your defense and not things like movement or fatigue drain, and leather and chain are simply the two weakest tiers of armor. On the contrary, you could get away with forbidding yourself from using leather and/or chain, and never miss either after leveling up once or twice.
�—�
"Forbidden Shield Type", you can take or leave. Shields aren't actively used like in Oblivion or Skyrim, or even activated like a dice roll in Morrowind - they're just an extra armor slot you can throw on if you're not wielding two weapons, or a two-handed weapon.
Reputations: Optional, and just affects your rep with generic groups in the game. No huge game-changers here.
Background questions: One nifty feature about Daggerfall is that it will automatically generate your character's backstory depending on your class and how you answer some of these background questions. Most of this is just flavor, or for some marginal stat changes that you can find in the UESP, but two things to highlight:
�—�
One of the questions will ask you what you got as a gift from the Emperor. Choose the Ebony Dagger. Always. (and make sure you haven't forbidden your character from using Short Blades in the Classmaker) This means you'll start the game with one of the most powerful daggers in the game. Most other weapon types will start to outperform it as you upgrade to a higher tier, and you'll want to focus on whatever weapon type you picked as your class skill - but the Ebony Dagger will be a huge lifesaver if you ever encounter an enemy that's immune to your current weapon material. Ebony is capable of damaging anything - up until you find Mithril at later levels, there will be enemies your current weapon may not be able to damage. Especially if it's something like a Daedra spawned as part of a quest, instead of the typical level-scaled fare.
�—�
Exploit: If you take "Critical weakness to disease" as a disadvantage in the classmaker, and then take an additional weakness to disease, you'll gain complete immunity to diseases. And diseases in this game are mean. But you won't get immunity to vampirism or lycanthropy - those have a chance to transfer that isn't changed by disease resistance.
That's it for character creation. After picking your class and background, you'll be able to distribute some extra points among your skills and attributes. Fun fact: you can potentially start the game with one attribute as high as 99, if you raise it to 75 in the classmaker and keep rolling the dice for a satisfactory attribute spread. Another fun fact: You can change your character's name at any time by clicking on it in the character sheet.
I'd recommend reading a little about the leveling mechanics on UESP. Skills only advance when you rest. Every time you level up, you get 4-6 points to distribute among your attributes freely as well as a health boost determined by what you chose in class creation. You can save scum for each level-up to get the best results, but it's hard to track when your character will actually level up. And despite the save scumminess, I honestly prefer Daggerfall's leveling system to Morrowind and Oblivion's.

SPELLMAKING:
A really robust feature that I don't feel is sufficiently explained, or at least not sufficiently understood. Maybe it was obvious to everyone else but me, but the spellmaker is set up so that you can create custom spells that scale with your level. Which is awesome!
For duration and chance, look at it as [base value] plus [additional value] per [level]. Which means if I make an Open spell with 10 + 5 per level, that means I have an Open spell with a 15% success chance at level 1, that goes up by 5% with every level. Or a Water Breathing spell that gives 3 + 1 per every 2 levels, would be 3 rounds at level 1 and only 8 rounds at level 10.
And for reference, 1 "round" in Daggerfall's spellmaker is ten seconds long. So 6 rounds is a minute, 11 rounds is 110 seconds, etc.
For magnitude it's the same, but you can decide a randomized range for the base and leveled value. For example, a Fireball spell with 10-20 base damage plus 9-10 additional damage per level would do 19-30 damage at level 1, and 37-50 damage at level 3. You can see how cool this is, since you can make custom spells at the start of the game that will remain useful throughout the entire game.
You can gain access to spell merchants and the spellmaker by joining the Mages Guild. Some spells I'd recommend making as soon as you get out of Privateers' Hold, for ANY character type:
Teleport: This spell costs zero gold to make in the spellmaker because Daggerfall. But regardless of how you get it, this spell will be the biggest timesaver in the game for you. Dungeons in Daggerfall are long and labyrinthine - expect to spend hours in real-time, and days in game-time, crawling through a dungeon searching for your quest target. And once you find your quest target, you have to go back and find the dungeon entrance. Unless you prepared your teleportation spell! It's like both Mark & Recall in Morrowind - the first time you cast it, you have to set an anchor. The second time you cast it, you teleport back to that anchor. But always remember that you have to recast your anchor every time you teleport somewhere. Anchors are a one-time thing. So set an anchor at every dungeon entrance, or better yet, in front of every questgiver. Remember that quests have time limits on them, and a big chunk of that time limit is for fast-traveling to and from the location. You can shave off the return trip by teleporting back to the questgiver instead, which gives you enough time to go through the quest and rest all you want inside the dungeon without worrying about the time limit.
Levitate 1 plus 1 round every 20 levels. Basically, you'll really want a Levitation spell for exploration purposes, but you don't need it at an overlong duration; just keep recasting it if you need to maintain levitation for longer. I know climbing is a skill in Daggerfall, but Levitation is more robust and some main quest dungeons outright require you have it - they'll usually provide a little levitation buff for you by activating a random object, sure, but it's better to have your own source of levitation.
Water Breathing/Water Walking, each at 1 round plus 1 round per level. Putting both together is still an extremely cheap spell you can keep recasting as you explore deeper in water, and as you level up it'll last you longer. Worth noting that Water Walking isn't what it is in the later games where it lets you walk on the surface of water - in Daggerfall, it lets you move through water at a normal speed, which is very useful for underwater exploration. (stray thought: the underwater portions of Daggerfall's dungeons are terrifying)
Free Action, 1 round plus 1 round per level. Any time you get paralyzed by an enemy, just open your spellbook and cast this cheap spell. So easy a Nord Barbarian could do it.
Open, for when bashing down the doors isn't enough (basically whenever you find a magic lock). For this I'd recommend a low base chance and a high per-level chance, so that you have a solid chance as you level up. At 10% + 10% per level, you've got a 100% chance to open all doors at level 10.
For offensive and healing spells, if you choose to be a more dedicated spellcaster, I'd again suggest going with lower base values and higher per-level magnitudes. That will make cheap spells that slowly become fantastic as you level up and really need them.
Also worth mentioning that Shield works differently in Daggerfall, compared to the later games. In Daggerfall, Shield basically adds its magnitude as another layer of HP; you don't take any damage until your Shield either wears off or is broken from damage.
Important note: If you're going to be doing quests for the Mages Guild, there are occasionally some quests where you have to cast a specific spell. Custom spells won't do it. So make it a priority to buy the canned spells "Open" and "Sleep" if you're in the Mages Guild, even if your custom spells are better.
QUESTING:
The final part of this little guide. I don't have a whole lot to say here, just a few general gameplay tips.
1.
Congratulations, you've made your character and woken up in Privateers Hold. Before you start exploring, or even start messing with the controls, though�€� SAVE. Save right now, immediately as you start the game. Because if you get killed before making your first save, you'll have to go through character creation all over again. There are no autosaves in Daggerfall.
2.
Make multiple saves. Daggerfall only has six save slots, but NEVER use just one for a character. If you think Bethesda games are buggy now, just think about how bad they were 20 years ago. As a minimum, I generally save to one slot before starting every quest, and keep a separate slot (or two) for saving during the quest. That way if something goes FUBAR during the quest, I have a save from before I even started the quest. For random quests this will mean you won't get the same quest if you reload, but that's usually just fine.
3.
Don't ever reject a part of the main quest. Otherwise you'll never be able to complete it. Similarly, the only quest in the game with a time limit is the very first one, to speak to Lady Brisienna. Don't be late, because you can run out the clock on this quest and basically fail the entire main quest before you even start it.
4.
The amount of loot you collect going through a random quest will dwarf whatever quest rewards you're offered, so if it looks like you're going to fail a quest for some reason you really shouldn't sacrifice a great loot haul by reloading a save. Worst case scenario, you lose a little reputation with that faction that you'll just gain back by doing another quest.
5.
I'd say about 90% of this game is dungeon crawling. So have some good strategies for exploring dungeons - hug the right wall so you always know how to backtrack, start recognizing dungeon blocks (every dungeon in the game is built from a few dozen prefabricated dungeon sections that get procedurally put together in-game to form thousands of dungeons), and save often.
6.
Gold has weight, every 400 gold is 1kg in Daggerfall. Go to a bank and deposit your gold, or draw it up in a letter of credit - make sure to have some plain old gold on hand for staying at taverns, though.
7.
Read the manual, comes with the game installation in a docs subfolder. Not just because it contains useful story information, but because it's an honestly entertaining read.
8.Enjoy the game.