Jump to content
  • Announcements

    • AndalayBay

      Orphan Attachments   07/31/2018

      I have been doing some housekeeping lately and I've noticed that I had a lot of orphaned attachments. Attachments get orphaned when the PM or post is deleted without removing the attachment first. Deleting a PM or post does not delete the attachment and the file or image remain on the server. I'd like to ask all members to go through their attachments and delete any attachments you don't need anymore or those that have been orphaned. Where can I get a list of my attachments? Click on your display name in the upper right corner of the forums and pick "My Attachments" from the drop-down list. How can I tell an attachment is orphaned? If the PM has been deleted, you'll see a message like this in your attachment list: Unfortunately there is no message if the post has been deleted, so please check your old posts. We do purge old birthday threads every once in a while. Also some hosted projects have been shut down, so you may have orphaned attachments on one of those locations. Thanks!
Sign in to follow this  
Munch Universe

Craftybits 0.812 Bug Reports

Recommended Posts

From OblivionPlayer11111:

Some of the things I have experienced from playing this mod so far...

 

- I tried to make flatbread pie according to guide instructions. Instead of flatbread pie, mod asks "Make raw tomato flatbread using flour dough, flour dough?" I did not add

  tomato so the question does not make sense.

 

-   Conversion of Wood causes mod to say fire has gone out. I am just starting to change/convert the wood and I have not put fire out so the message does not make sense.

 

-   Grammatically, game says These cheese wheel will make a nice sauce.

 

-   2 barrel ends left over after making aging barrel

 

-   Hardwood Plank fell through floor when I deliberately dropped it

 

-   I kept seeing message # of ingredients don't match a recipe even after I successfully make something...

 

-   Silver bowl turns into mixing bowl. When I take mixing bowl back into my inventory, it becomes a tan bowl. The silver bowl is no longer there and I cannot get a silver bowl back in my inventory after using conversion P key.

 

-   Much of the flatbread recipes are raw. They need to be placed on a cooking plate to be fully cooked. This is not mentioned in the guide.

 

-   I can't make ham jerky in the aging barrel. Therefore, it is not possible to make the flatbread recipe requiring ham jerky. Alternative recipe that I discovered that is possible: flour dough + cheese sauce + sliced ham + cutting

    board + rolling pin creates Meat Ham Cheese Flatbread...not mentioned in the guide...

 

-   I had 2 separate pieces of boar meat on the cutting board. When dragging knife to cut up boar meat, mod asks if I want to make marinated boar meat. It makes no sense because I did not add marinade to the boar meat.

 

-   CB timescale didn't work much for me in reducing aging time.

 

-   When skinning animals like wolves, the animal moves several feet away from me after I successfully skin it. This does not seem to make any sense...

 

-   After a while, can't make corn flour in my game...Don't know why...Conscribe logs + save games attached might yield more insight...

 

-   When dropping eggs or stacks of eggs to cutting board to make flatbread, they might fall away from cutting board and roll somewhere else.  Kind of unstable...

 

Please see attached files for more info...This is not meant to be negative criticism of your mod...Maybe because my computer hardware, system, and mods are different from yours, you might not have these unique problems. I used the console to make things easier on myself. Thank you for an interesting mod...Otherwise, I would not continue using it to try to make different things...

 

Edited by Munch Universe

Share this post


Link to post
Share on other sites

Hi OP,

thanks for the many notes on things which need fixing. I'll fix what I can, but I have to explain a few because they can't be fixed. 

 

-  I tried to make flatbread pie according to guide instructions. Instead of flatbread pie, mod asks "Make raw tomato flatbread using flour dough, flour dough?" I did not add  tomato so the question does not make sense.

 

-  Grammatically, game says These cheese wheel will make a nice sauce.

 

-   I kept seeing message # of ingredients don't match a recipe even after I successfully make something...

 

-   I had 2 separate pieces of boar meat on the cutting board. When dragging knife to cut up boar meat, mod asks if I want to make marinated boar meat. It makes no sense because I did not add marinade to the boar meat.

 

 

The confirmation message you are seeing is sort of a debug mechanism which could be deactivated, but because of messages like this, it is better to have it active. What the script does is show this message "Make " + product name / ingredient #1 / ingredient #2 / ingredient #3 + "?". So it tells you what the script is working with, regardless of what you think you added. Most of the time what you think and what the script recognizes is the same, so there is no problem. But when they differ, then something is a bit screwy. I'll check the scripts to see if I can explain exactly what it did there. It sounds like there could be a mix up in the recipes. Thanks for calling it to my attention, keep an sharp eye out for more such.

 

"These" + product gives the messed up grammar you noted. Because it is difficult to know if single or plural will apply in this case, I picked plural for simplicity, but I can probably find a way to add a check to use "This" when appropriate.

 

The message about # of ingredients is probably something that I cannot fix. At least some of the messages are caused by products of a recipe which are also an ingredient for another recipe. Because the second recipe is incomplete, you see such a message. I'll look at it, maybe I can come up with an idea, but it is probably something you'll just have to live with.

The boar meat problem is probably related to the flatbread problem, where the ingredients the board sees are different than the ones you think are recognized. I'll have a closer look.

I'll track this one down. It is a side effect of a different bug fix. I've seen it myself, but didn't really worry about it.

 

-   Conversion of Wood causes mod to say fire has gone out. I am just starting to change/convert the wood and I have not put fire out so the message does not make sense.

 

-   2 barrel ends left over after making aging barrel

 

-   Hardwood Plank fell through floor when I deliberately dropped it

 

-   When skinning animals like wolves, the animal moves several feet away from me after I successfully skin it. This does not seem to make any sense...

As far as I know, having barrel ends or other construction pieces left over is a fairly rare problem. Are you seeing it each time, or just saw it once and reported it? Either way is fine, I'm just trying to collect more information. It relates to the barrel ends being lost by the script after they served their purpose to get a script going, but before they can be deleted. It usually relates to them moving in some way at the moment when you are trying to make a barrel. If it isn't something that happens every time, there is probably nothing I can do to fix it. My advice is to disable the barrel ends (or reuse them, if you don't mind a minor cheat.)


Lots of things can fall through the floor. The planks are not the worst offenders by far. Many vanilla items have the same problem. The floor is visualized as a plane in the 3d world, but collision is a much trickier problem than it appears. To explain would take quite a bit of space and I'd have to know more about how much you know about information technology to get the level right. So I'll just leave it as a vanilla problem common to Oblivion and many other games. CB makes it worse because many of our items are small and the smaller the item, the more likely it is to fall through the floor. 

We can't prevent this from happening rarely (if it happens consistently, it can be fixed) but it is important how you react. If anything falls through the floor, you must open the console, type "tcl" [toggle collision] and go underground to retrieve the lost item. If you do not, the next time you drop a hardwood plank, you will find it hovering in mid air. An underground item makes all other items of exactly the same type (softwood planks will not be affected) lose their Havok properties (physics engine in Oblivion). Once you pick the lost item up again, Havok is restored, so this is a problem which seems very serious, but is easily fixed if you only know how. If you find that something is hovering in mid air but you didn't know you lost one, you can be sure you did lose one somewhere withing 1 quadrant in any direction. Usually you can guess because you had a base somewhere and perhaps left something lying around which you can no longer find. Go underground and search until you find it. They are usually just at the water line, if any.

 

The skinning problem is also built into vanilla. The game has a system for determining where it is "safe" to place an actor, which mods cannot influence or change. It leads to unfortunate teleportation of corpses in CB skinning. I'm afraid there is nothing we can do about this one. 

 

-   Silver bowl turns into mixing bowl. When I take mixing bowl back into my inventory, it becomes a tan bowl. The silver bowl is no longer there and I cannot get a silver bowl back in my inventory after using conversion P key.

he way the scripts work, a silver bowl is qualified to turn into a mixing bowl, but a mixing bowl always converts into a simple tan bowl, regardless of how it started out. To do it any other way would mean we would have to track the state of each bowl when first converted, then return it to what it was. That is theoretically possible, but takes a lot of savegame space for very little gain. So in this case my advice is to not convert your silver bowls if you want to sell them. I could add a line to the guide to explain, though it is likely to be overlooked by most players.

 

-   Much of the flatbread recipes are raw. They need to be placed on a cooking plate to be fully cooked. This is not mentioned in the guide.

-   I can't make ham jerky in the aging barrel. Therefore, it is not possible to make the flatbread recipe requiring ham jerky. Alternative recipe that I discovered that is possible: flour dough + cheese sauce + sliced ham + cutting

    board + rolling pin creates Meat Ham Cheese Flatbread...not mentioned in the guide...

 

I'll add it to the guide. I think the idea behind the ham jerky is that ham is already preserved, so that ham jerky doesn't really make sense. Pork jerky, sure, but not ham jerky. I'll figure out if the guide is at fault or if the scripts need a little tweaking. 

 

-   CB timescale didn't work much for me in reducing aging time.

 

CB timescale actually only affects plant growing time. But you have a point, it should impact aging as well. I'll see what I can do to fix it.

 

 

Quote

-   After a while, can't make corn flour in my game...Don't know why...Conscribe logs + save games attached might yield more insight...

I'll see if I can figure out what the problem is.

Quote

-   When dropping eggs or stacks of eggs to cutting board to make flatbread, they might fall away from cutting board and roll somewhere else.  Kind of unstable...

 

This is another one of the "you'll just have to live with it" type of answers. Square eggs will fail in a different, more obvious way. Unfortunately the physics engine is too good here, so that round things roll downhill as they should. My only advice is to be careful your board is really level when you use it. If you press grab while dropping something from inventory, you grab it as soon as it is in the game world. That might also help to be able to place things carefully. Same goes for meats dropped into the barrel. You may find that technique solves your barrel aiming problem.

 

I appreciate all the feedback. It sounds like a lot, but I can probably clear it all up in half a day. That half a day is probably not today, but I'll get to it over the weekend and let you know when a patch is available.

Edited by Munch Universe

Share this post


Link to post
Share on other sites

From OP11111:

More Observations:

 

  • Had trouble making salted wolf meat. Tried dropping sliced wolf meat + salt into the aging barrel. CB Time Scale was set to 0. Sliced wolf meat disappeared in aging barrel and I could not retrieve it.

 

  • I couldn't make marinade with ale, beer, mead, or wine + seed oil following instructions in the guide. As I understand it, I drop a bottle of ale, beer, mead, or wine, into the mixing bowl first. Then I drop seed oil into the bowl and then I drop a spoon. When I did this, the game says something about flavor I think, but I saw no marinade in the bowl or in my inventory.

 

  • I couldn't make meat soup mix with wolf meat (used mixing bowl)

 

  • I couldn't make frumente mix with wolf meat (used mixing bowl)

 

  • Instead of making root pulp as outlined in the guide, I ended up making seasoned potatoes using recipe of potato + potato + cutting board + knife

 

  • Tried making meat soup mix with boar meat. Raw meat soup is result. When raw meat soup is placed inside cooking pot near fire, it does not cook at all

 

Share this post


Link to post
Share on other sites

I started by looking at the barrel ends. I tried and failed to reproduce the problem on my machine. In my hands, the script worked flawlessly. The logs OP added to the message clearly indicate an error in the script, so I have no doubt whatsoever that the problem is real. I could use more data on this one. If anyone else has seen this problem and can describe the circumstances, please let me know.

 

I suspect it requires some set of circumstances which are a little unusual. On possibility is having a stack of construction objects. If a pair of barrel ends rest on one another, the bottom one probably treats the top one as an object to be used for construction while the top one might registered the expected 5 wooden hoops and 9 wood slats. If the bottom barrel ends have the top barrel ends registered, that would prevent the deletion of the top barrel ends. I'll run an explicit test, but as a general tip, never stack anything used as a base item for construction: barrel ends, wood panel, pole supports, plank supports, canoe frame, yurt frame.

 

EDIT: Another good idea that didn't pan out. Placing one "barrel ends" on top of another had no impact on the script in my hands. The top barrel built fine and the barrel ends disappeared despite being registered by the lower barrel ends. Back to the drawing board.

Edited by Munch Universe
test results report

Share this post


Link to post
Share on other sites

- I tried to make flatbread pie according to guide instructions. Instead of flatbread pie, mod asks "Make raw tomato flatbread using flour dough, flour dough?" I did not add

  tomato so the question does not make sense.

 

 

This turns out to be the result of an extremely subtle bug. Normally I can find most bugs in about 5 minutes, but after having a close look at this one, at first I thought it must be impossible, even though I saw the problem in my own testing. The explanation is complex, so I'll try to summarize briefly. 

 

The recipe arrays typically call for Item1 and Item2, usually different item types. The way the checks work, they are not really checking that they have 1 Item1 and 1 Item2, instead they are checking that they found 1 of something on one of the arrays and 1 of something on the arrays and that there are 2 components present. This catches almost everything, but dough + dough slipped through the hole. In this example, it means that the script found 1 Item1 and another Item1 and that there are 2 components. Using something not in the dough array fails, as it should. I haven't tested it, but by this logic, two tomato sauces must also produce the same result, a tomato flatbread instead of nothing.

 

My first attempt to fix it failed, but I'll figure it out.

 

EDIT: After a few more unsuccessful attempts, I'm having second thoughts about fixing this problem. A fix looks like it will require re-engineering how the script works on a fundamental level. The danger is great that fixing this obscure, not particularly harmful bug will trigger a bunch of new bugs which might be frequent and nasty. 

Edited by Munch Universe
Update of current status

Share this post


Link to post
Share on other sites

Reference Guide now calls for 1 dough to make a plain flatbread. Using two dough to get a tomato flatbread is a bug, but I'm going to leave it for fear that the cure is worse than the disease. Two boar meat on the board is probably the same problem and will similarly be ignored. The bugs are minor and you pay a price for them, so at worst it is a minor exploit.

 

Fixed "These cheese wheel will make a fine sauce", now reads "This cheese wheel will make a fine sauce".

 

Fixed campfire reporting it was put out when wood is converted.

 

Guide updated to explain that you need to cook your raw flatbreads.

 

Seed oil + ale in the bowl with the spoon resulted in a stack of 4 marinades in my hands after two questions. First was whether I wanted to add flavor [no], then if I wanted to make marinade out of seed oil and ale [ok]. I find the cancel button is positioned a little unfortunately because a quick response is more likely to hit it than OK, but for programming reasons it is much better to have cancel first. Could you give marinades another shot?
If it fails, the reason could be a source of alcohol not native to vanilla, CB or Cobl. Any alcohol added by another mod will be ignored.

 

Technical Background

There is a trade off between using object names and EditorIDs. The EditorID is an internal name which is unique to each object in the game. The object name is what you see on the screen and need not, necessarily be unique. More importantly, the screen name can be translated without impacting game mechanisms. A mod relying on EditorIDs can only recognize objects from specified mods, while using a screen name would allow unknown types of "meat" to be recognized, even from unknown mods. The problem is that any non-English language version will fail miserably. The German word for "meat" is "Fleisch", so you can see how a routine looking for "meat" must fail. Versions of CB up to 0.7 used names a lot, but I changed it to EditorIDs for most purposes to make translations possible one fine day. Even without translation, CB is compatible with foreign language versions of Oblivion, though it will use English language names for anything it adds to the game itself. I think that is more important than recognizing objects from unknown mods.

 

Latest Version

CB 0.812.1 + CBFix_BeesKnees_27102017. 

I also uploaded a new version of the reference guide CB812a

Edited by Munch Universe

Share this post


Link to post
Share on other sites

New version 0.812.2 added to the downloads section. Take your pick of a full version (with BSA) or an esp/esm pair (no BSA) if you have a previous CB BSA already present in your load order.

One really important fix is included. Aquarius97 helped me to find a bug in the weapons and armor repair scripts that occasionally led to the CB key hanging. When this happens, you are just stuck and the only thing that will fix it is loading an earlier save. The problem has been found and eliminated, so I hope to have heard the last of the occasional reports of hanging CB keys which I didn't know how to fix.

Other minor fixes will help the charcoal chest, the magic broom, smithing and canoe swaying.

Share this post


Link to post
Share on other sites

Thanks to puddles I was made aware of a serious bug involving the conversion of regular plates to CB cooking plates. The problem only affects items which are parented, such as those added by a house upgrade. It is not restricted to plates. Once found, the bug was easy to fix. I used the occasion to fix a slew of bugs reported by Aquarius97 some months ago. Currently one new idea is in development with puddles. Once completed, I will release CB 0.813 in a week or two. Should anyone know of any bugs in CB, now would be a really good time to report them so I can build them into the upcoming fix.

Share this post


Link to post
Share on other sites

Copied from the Nexus comments from Hound Akragth:

Quote

Using CB0.812.2 and OBSE 21. Craftybits has been awesome and don't take the comments below as an indictment of the mod. For something of this complexity, this works remarkably well.

Couple of possible bugs. One, harrada staves cannot be made into harrada fiber (and there's no 'harrada limb') - I believe this is a renaming issue as when I investigated the script, the if clause for "staves" comes before the harrada clause and then either aborts because there's just one stave or makes itself into a pole support. When I renamed the it to harrada limb, it worked fine. Two, I think there might be something amiss in the cooking scripts down near the else statement for formid vs ingredient class - I was having trouble making mild soap. Fiddled with the spacing on that and recompiled it - it worked after that; not sure what happened there but it might not be a bug... Three, I've been running into trouble making staves into a canoe frame - even when the debug messages say they've completed one, the staves stick around and there's no frame. Four, there's a definite problem with the fish traps; it won't add fish to the trap (no bait, I suspect adding bait would fix things). I think there's something weird going on when a script tries to remove or equip a reference that's set to something that isn't an inventory object, crashing out or at least skipping lines of code it really shouldn't. Which then results in behaviors like 'never adding fish to the trap' or 'CB key gets stuck'. Of course, given that the fish traps really shouldn't be converted into fish fillets upon CB key, that area of the code might need a revamp.

Also can't seem to age the curing yew / ironwood staves. I think that's because the scripts for those two set the mode to 10 instead of 30.

I don't know if it's intentional or not but in the ingredients class list, there's two entries for the flowers class that don't match the other two as they're FLORA and not INGR - Alkanet and Motherwort. Not sure if it'd cause problems, but I thought I'd point it out.

Haven't had time to run extensive testing on how exactly oblivion scripting works, though and I don't think I will any time soon.

  • I found the harrada problem and believe I fixed it. 
  • The problem with soap has already been fixed in 0.813.0.
  • I don't see an obvious problem with the canoe frame and will need to do some testing to understand the problem.
  • The fish traps would be an interesting topic to discuss. One possible explanation is that the fish trap takes time, so if you don't go away and come back half a day or a full day later, nothing is going to happen. The fillet idea is, admittedly, less than ideal. I seem to recall that the fish handling was causing all sorts of problems so it seemed best to just skip over the intermediate steps and get straight to the pay off. It does lose some immersion, but the previous scheme of getting fish, then converting them into MISC you could carry was also kind of weird. The hard-coded system that places the fish kept putting them somewhere out of obvious sight and making the player search for them was not satisfying.
  • I need to refresh my memory of how the stave aging worked. The gap between 10 and 30 is deliberate to allow another script to do something, I just forget exactly how it works. I had planned to move the staves to the barrel to neaten the process up, I just never got around to it before the project faded.
  • Nice spotting for the zFlowers defs. They are indeed in error.

 

Edited by Munch Universe

Share this post


Link to post
Share on other sites

So, er. The same HoundAkragth here as quoted. CB 0.812.2 and OBSE 21 from CLS-Craftybits_Complete_08122.7z.

This is mostly me reading off the code to guess at what's intended. You have very sensible code I can actually mostly trace. Some of this has already been said but I thought I'd collate this as a record. If you need me to post this elsewhere, I can do so.

Also, do note that I didn't take that much time to do more than what I'd call patching. Some of these could use with a more comprehensive fix than what I've given them.

Canoe Frame:

Mostly, this is a case of "Adding a Container Object to a Actor". Since I'm packing the new items... Yeah. Suggest CBCanoeFramePlacer instead of CBCanoeFrameC. Work-around is simply not to use Pack New Items.

Fish Trap Not Catching Fish:

This only happens if the player hasn't put bait into the Fish Trap; waiting several days doesn't help to add fish to the trap.

I found that the script would not run any of the commands after the removeItem in this if there wasn't any bait -

	rFishTrap.removeItem rBait 1
	rFishTrap.addItem rFish 1
	set rFish to 0
	set FishFlag to 1
endif

So, here's the suggestion (which has been mildly tested) -

	rFishTrap.addItem rFish 1
	set rFish to 0
	set FishFlag to 1
	if eval (IsFormValid rBait == 1)
		rFishTrap.removeItem rBait 1
	endif
endif

Stave Aging:

It still doesn't age even if the time interval is set to zero. As both the Gnarl and the Spriggan scripts both use 30, there may have been a change somewhere that removed that 'other script'.

I don't actually have much of a comment on using a barrel to age the staves, actually. It doesn't make much of difference for me as the aging barrels over the time period the staves need to age tend to fall beneath the ground anyway and I don't have the best grasp on how the cell reference deletions work. Practically speaking I'd probably end up dragging said barrel around via grab key anyway and at least a barrel would be less likely to end up flung under the ground when I dropped it to start fighting.

Bathing:

Bathing is resetting before it gets to the actual bathing part of the script; I don't think it's a serious problem as the only things that are done in Bathe > 0 is remove "getting sick", maybe losing a soap bar, and adding the soap effects, but it'd have been nice to see the messages that are in those sections to make sure it's been done.

CBKey + Fish:

The culprit for the CBKey and fish error where all objects with names containing fish are turned into fish fillets is in CBMstCBKeyInitOS at the top where it's creating -

let CBKeyQ.arConvert[ix] := ar_Construct Map
let CBKeyQ.arConvert[ix][1] := ar_Construct Map
let CBKeyQ.arConvert[ix][1][0]:= "Fish"
let CBKeyQ.arConvert[ix][4] := 1
let CBKeyQ.arConvert[ix][5] := CBFishGenericFillet

CBMstCBKeyQS detects anything containing Fish in its name as a iProc == 1 and then does its conversion. Mind you, I don't know if that's supposed to be there at all. I'd recommend adding Amur Catfish to the exclusions if it is and probably "Fish Trap" and "Fishing Boat" -

let CBKeyQ.arConvert[ix] := ar_Construct Map
let CBKeyQ.arConvert[ix][1] := ar_Construct Map
let CBKeyQ.arConvert[ix][1][0]:= "Fish"
let CBKeyQ.arConvert[ix][2] := ar_Construct Map
let CBKeyQ.arConvert[ix][2][0] := "Amur Catfish"
let CBKeyQ.arConvert[ix][2][1] := "Fish Trap"
let CBKeyQ.arConvert[ix][2][2] := "Fishing Boat"
let CBKeyQ.arConvert[ix][4] := 1
let CBKeyQ.arConvert[ix][5] := CBFishGenericFillet

Also, I'm not entirely sure why iProc == 1 handles both ingredient conversion and equipping items. I'd actually recommend taking equipping weapons out of iProc == 1 - remove set Equip to 1 from the script. The EquipItem the Equip flag allows breaks things when it runs on things that aren't valid inventory items.

What I'd recommend doing for iProc == 1 is -

set Mode to 99
if eval(rConvItem.GetObjectType == 25)
    Player.PlayGroup CastTouchAlt 1
    Player.AddItem rNew 1
    set rTargetDel to rConvRef
    rTargetDel.Disable
    set DelUnused to 1
endif

The reasoning for the 25 is because that's the integer for ingredients, and iProc 1 seems to be ingredients-only. Not to mention without the equip, there won't be a stuck CB Key from that vector. There's a better way of doing this, by the way of doing the rConvItem object type check before breaking out of the for loop walking through the conversion array so the exclusions above are unnecessary, but I should think that the type check could be left in anyway.

And then for equipping items, instead of eval( Equip == 1) in Mode 99 -

if eval( Equip == 1 && IsFormValid rConvRef == 1)
  set rNewItem to rConvRef.GetBaseObject
  if eval(rNewItem.IsWeapon == 1)
    rConvRef.Activate Player
    Player.EquipItem rNewItem
  endif
endif
set Equip to 0

These aren't tested though; I just simply removed the Equip and added exclusions in my personal copy instead of solving that way, but the above would likely cover more scenarios. I'm not sure if I need all the form/ref checks or if they'd break the if statement before jumping out, but logically this should work.

Picking up Fish Trap:

When picking up a fish trap, the fish trap itself seems to stick around (it doesn't, it's actually an entirely new fish trap reference).

"set TrapDeployed to 0" in "Reset == 1" is part of the problem. What probably ends up happening is that somehow the script runs a few times before stopping entirely. I found "set TrapDeployed to 9" worked nicely, but that may not be the best way to fix things.

Bow Upgrade - Broken Bow:

When I only add sinew or harrada fiber, upgrading a bow results in a broken bow. This is because CValue, CHealth, CDamage, and fCSpeed do not get set if there's no Horn and default to 0. The script uses all four variables anyway for SetGoldValue, SetObjectHealth, SetAttackDamage, SetWeaponSpeed and thus results in setting the bow values to 0.

Icons:

There's also a few icons - hardwood bow, the wooden slats among them - that appear very pixelated and wrong. They're not important things that impact gameplay but I thought I'd repeat it here.

Edited by HoundAkragth

Share this post


Link to post
Share on other sites

Wow, I don't think I've ever had anyone pick through the scripts like this before, at least until recently. I'm grateful.

I'll go through each problem and proposed fix systematically but I just wanted to start by saying thank you. 

I've looked at a few of the problems already and came to similar conclusions to the ones you did. I didn't look at the bait problem but your explanation and proposal is so convincing that I'm sure that is both the source of the trouble and a viable fix. I think I know what is wrong with spriggan and gnarl, a missing script on the staves. Taken together, it looks like it will be pretty easy to find and fix every one of the problems. Expect some news today or tomorrow. 

Munch

 

Share this post


Link to post
Share on other sites

I'm happy to help and I think I'm half in love with the code. It's sensibly named, well ordered, and doesn't try breaking my brain. I can draw state machines off this. T'be honest looking at how well it was written, I don't think you need any help with the "fixing" part of it, it's just that I'm not too good at describing problems and go straight to the fixing part. Me, words, no mixy. I do better with code. And state machine diagrams.

The bit I'm most impressed with is the barding / music and the cooking; both feel complicated and work quite smoothly. One of the smaller bits that I liked that wasn't that big was the ability to make jerky without salt. I see that all too rarely. I'd love to be able to make pemmican too, but it's nice enough that I can make jerky without salt.

I can see if I can shell out some time on the weekend to poke through the rest of the scripts if you'd like? The above I encountered through gameplay, but there's bits I wouldn't be likely to do with my playstyle and bits I wouldn't notice in-game like clean up.

Share this post


Link to post
Share on other sites

Thank you for the compliments. I am quick to point out when others have made the main contribution, such as in inventing almost all the mechanisms. But in terms of organizing the code, I can claim that for myself and it is very gratifying to discover that someone else could immerse themselves in it and actually find their way around.

Interestingly barding is a old system, always a little neglected and I did only what was necessary to get it to work right as designed. Cooking, on the other hand, has been almost redone. Probably hardly a line of the original scripts still stand unchanged. I suppose it has always been my favorite part to mess with, but even I haven't ever memorized most of the recipes for use in game. As a result quite a number were still defective but I recently fixed them, I think. Some systems lend themselves well to expanding pretty easily and cooking is one of those. How would you define pemmican and how does it differ from air-dried jerky? If we can come up with a suitable model and a sensible recipe which isn't hopelessly redundant with another, I'd be happy to add it.

If you think it would be time effective, you are certainly welcome to poke through the scripts to look for problems. I know more about coding now than I did then, but it would surprise me if you end up finding much that way. In my experience the problems mostly come from something not behaving in-game like it seems it should based on the scripts. The fish problem, for example, probably comes from compare working a little strange. If the search string is "blue marlin" and the animal is named "blue marlin" I would expect a match. But I have a suspicion the comparison is breaking the strings into words and comparing "blue" with "blue". In this case it will still match but it may also match with "bluegill". I need to run some tests to be sure, but I think it would account for your observations.

The best way to find problems, I find, is to just play and try new things out. If something doesn't work like the guide says it does, or even if it just doesn't work like you think it should, it is worth discussing. Sometimes there are good reasons why something has to be a particular way, but sometimes it is just a matter of no one having thought of the most intuitive approach to take.

Have you done anything with smithing so far? In terms of complexity of the scripting, that set of scripts wins. It has enormous potential because it is designed to allow new weapons and armor to be forgeable, providing modellers with an immersive way of getting their things into the game with relatively little effort. But it never caught on, which I think had to do with its timing, coming so late in CB's own history. If we had found a few modellers interested in using the system, it might have taken off. In retrospect, I probably should have actively approached a few of the better known modders and created a small patch to make it happen. Once it became apparent how easy and seamless it is, it might have caught on. In any case, I think you may find it worth a look, though you may struggle with it a bit due to the complexity. The execution path of certain activities ping pongs between two or three scripts in a way which may be hard to follow. The scripting is nasty complicated but that is in order to make it easy to tack things on by adding an extra mini-script.

Share this post


Link to post
Share on other sites

Pemmican's ground jerky + melted fat (usually from tallow or tallow-like fat products). It can be flavored with other things, like onions and berries and stuff, but the base is jerky + tallow. The tallow's to turn loose protein fibers and powder into a solid chunk of browned protein once it cools and re-congeals, but also to add oils and fats that jerky loses in the process of making it. I suggested it mainly because I ended up with extra animal fat a lot and it is a traditional trail food, and I think a retextured tallow or clay chunk could probably do just fine as a model.  Mottled brown, brown-red instead of gray/yellow/whatever color it was.

As for looking through the code, I've found that going through the code first gives me ideas on what would be edge cases and then I can go test them in-game; they usually end up exercising the normal part of the code as well. Any of that, unfortunately, will have to wait for the weekend. I don't have access to the computer that contains Windows until then.

I haven't done much with smithing, unfortunately.  I think I used the forge to make a few iron bars and arrowheads, but there's a bit of a gateway there in terms of armorer skill and resources and I didn't start on the new character until fairly recently.

You do some modeling for this, I presume? I actually know pretty much nothing about modeling. :(

Edited by HoundAkragth

Share this post


Link to post
Share on other sites

Pemmican sounds interesting. For us modern types, whose exercise often consists of pushing keys on the keyboard, it might not be such a good thing. But for a hero in a cold environment full of hard physical exercise, it is certain to be a good thing. A basic version would be easy, just add tallow instead of salt. Flavorings are tempting, but would require a fair bit more effort to integrate into the existing scripting. I'd be tempted to give pemmican a low level bonus property due to the wealth of calories it would provide.

Your approach to testing sounds brilliant. If nothing else, putting a second pair of eyes on the code will help because often one gets trapped in a particular way of seeing things, then just never questions them again. Your fix to the bait problem, for example, immediately made sense to me but I failed to spot the problem until you pointed it out.

I know my way around GIMP2 well enough to retexture things reasonably well. Though when it comes to things like spectral properties, that tends to be a bit over my head. I know enough to recognize a problem but not necessarily how to fix it. I looked at Blender, then decided not to learn how to use it. It was a deliberate decision because I'm busy enough with the scripting that I didn't want to pile that on top as well. In addition, I like working with collaborators and if I can't find someone who is interested enough in a particular project to devote some time to modelling, then it probably isn't worth doing. In principle CB is so open ended that there is almost no limit to what could be done in its context. So it is useful to have some way to check if something is really worth doing. 

Another thing I tend to factor in a lot, but almost no one else can, present company most likely excluded, is how hard it is to make a change. Take pemmican, for example. Given a suitable model, the scripts will only need an extra line or two. The whole thing won't take 30 minutes. So even if it is relatively low value, it is so easy it is worth doing. Something of high value would be to restructure construction to use a series of wood pieces of different sizes and shapes. It would make CB a fair bit more realistic, but it would require redoing a large number of items, rewriting a dozen scripts, would create compatibility problems with existing saves and may end up weighing the mod down with excessive detail. We wanted to go in that direction some day but the hurdles were just too high to launch into it while the team was still active and we never got to it.

One of the efforts I'm particularly proud of is the barrels. A skilled animator, Koniption, created the barrels and animated them, then I rigged up the scripting. It was one of those cases where she couldn't have done the complex scripting they took and I couldn't have done the animation without spending a year learning how to do such things well. But together we produced something pretty spectacular. I realize most players probably barely notice, but in a way that is good, too. If everything goes so smoothly and immersively that it seems normal, that is a good thing. Unfortunately Koniption ran into some health problems and retired from modding, as far as I know. I haven't heard from her in a number of years.

Coming back to pemmican, it sounds like a retexture it all it would take. That might take an extra hour, so it is no big deal. GIMP2 needs an extension to handle what Oblivion needs of it (normal mapping), but is otherwise not hard to learn or use. If you are feeling ambitious and would like to take a crack at it, I'd be happy to explain. If you'd rather not, I can do it. To be honest, it would probably take less time for me to do it myself than to explain how to do it but I'd be happy to teach you how to use GIMP2, if you would like. 

Share this post


Link to post
Share on other sites
On 10/14/2018 at 10:22 PM, HoundAkragth said:

CBKey + Fish:

The culprit for the CBKey and fish error where all objects with names containing fish are turned into fish fillets is in CBMstCBKeyInitOS at the top where it's creating -


let CBKeyQ.arConvert[ix] := ar_Construct Map
let CBKeyQ.arConvert[ix][1] := ar_Construct Map
let CBKeyQ.arConvert[ix][1][0]:= "Fish"
let CBKeyQ.arConvert[ix][4] := 1
let CBKeyQ.arConvert[ix][5] := CBFishGenericFillet

CBMstCBKeyQS detects anything containing Fish in its name as a iProc == 1 and then does its conversion. Mind you, I don't know if that's supposed to be there at all. I'd recommend adding Amur Catfish to the exclusions if it is and probably "Fish Trap" and "Fishing Boat" -


let CBKeyQ.arConvert[ix] := ar_Construct Map
let CBKeyQ.arConvert[ix][1] := ar_Construct Map
let CBKeyQ.arConvert[ix][1][0]:= "Fish"
let CBKeyQ.arConvert[ix][2] := ar_Construct Map
let CBKeyQ.arConvert[ix][2][0] := "Amur Catfish"
let CBKeyQ.arConvert[ix][2][1] := "Fish Trap"
let CBKeyQ.arConvert[ix][2][2] := "Fishing Boat"
let CBKeyQ.arConvert[ix][4] := 1
let CBKeyQ.arConvert[ix][5] := CBFishGenericFillet

Also, I'm not entirely sure why iProc == 1 handles both ingredient conversion and equipping items. I'd actually recommend taking equipping weapons out of iProc == 1 - remove set Equip to 1 from the script. The EquipItem the Equip flag allows breaks things when it runs on things that aren't valid inventory items.

What I'd recommend doing for iProc == 1 is -


set Mode to 99
if eval(rConvItem.GetObjectType == 25)
    Player.PlayGroup CastTouchAlt 1
    Player.AddItem rNew 1
    set rTargetDel to rConvRef
    rTargetDel.Disable
    set DelUnused to 1
endif

The reasoning for the 25 is because that's the integer for ingredients, and iProc 1 seems to be ingredients-only. Not to mention without the equip, there won't be a stuck CB Key from that vector. There's a better way of doing this, by the way of doing the rConvItem object type check before breaking out of the for loop walking through the conversion array so the exclusions above are unnecessary, but I should think that the type check could be left in anyway.

And then for equipping items, instead of eval( Equip == 1) in Mode 99 -


if eval( Equip == 1 && IsFormValid rConvRef == 1)
  set rNewItem to rConvRef.GetBaseObject
  if eval(rNewItem.IsWeapon == 1)
    rConvRef.Activate Player
    Player.EquipItem rNewItem
  endif
endif
set Equip to 0

These aren't tested though; I just simply removed the Equip and added exclusions in my personal copy instead of solving that way, but the above would likely cover more scenarios. I'm not sure if I need all the form/ref checks or if they'd break the if statement before jumping out, but logically this should work.

CBKey + Fish:
I think there is a simpler solution to this problem, though your proposal is solid and would work, as far as I can tell. The only conversions which use their name are "meat" and "fish" ( see top of Scn CBMstCBKeyInitOS). So if line 178 of CBMstCBKeyQS is changed from this:
if eval( nameIncludes $sInclude rConvRef  )
to this:
if eval( nameIncludes $sInclude rConvRef && GetObjectType rConvRef == 25 )
only objects of type ingredient will be considered. This is a little better because it winnows the candidates down as early in the script as possible, which will make it just a little faster. It is unlikely that the player will ever notice, but as a matter of principle faster is always better than slower because the delays can add up.

In the current version Proc 1 is only used for these two cases. That used to be different because there were other things which could be converted and added to inventory directly, but somewhere along the lines that changed. This particular conversion is quite new. Its sole purpose is to allow meat or fish acquired from some foreign mod to be converted into a form suitable for use in CB. It could get a switch that needs to be enabled, but since it is so easy to ignore, it seems simpler to just leave it there.

The improvement to the Equip block looks like a great idea. I'll implement it as proposed, except for relieving the requirement for it to be a weapon. This can be used for anything that goes straight into inventory.

Edited by Munch Universe
minor correction of last line

Share this post


Link to post
Share on other sites
On 10/14/2018 at 10:22 PM, HoundAkragth said:

Picking up Fish Trap:

When picking up a fish trap, the fish trap itself seems to stick around (it doesn't, it's actually an entirely new fish trap reference).

"set TrapDeployed to 0" in "Reset == 1" is part of the problem. What probably ends up happening is that somehow the script runs a few times before stopping entirely. I found "set TrapDeployed to 9" worked nicely, but that may not be the best way to fix things.

Yours is a good solution. Implemented as suggested with an additional comment to explain:
        set TrapDeployed to 9 ; park the script until disable and delete can run

Share this post


Link to post
Share on other sites
On 10/14/2018 at 10:22 PM, HoundAkragth said:

Bow Upgrade - Broken Bow:

When I only add sinew or harrada fiber, upgrading a bow results in a broken bow. This is because CValue, CHealth, CDamage, and fCSpeed do not get set if there's no Horn and default to 0. The script uses all four variables anyway for SetGoldValue, SetObjectHealth, SetAttackDamage, SetWeaponSpeed and thus results in setting the bow values to 0.

        I decided to add two protections from this bug. The main fix involved moving acquisition of the original properties out of the Horn if statements so that they are now unconditional. The second protection was to ensure that a set value is never 0. This should no longer be necessary if the first fix works, but I also see no cost to the protection aside from being a tiny fraction of a second slower. If one of the values is already 0 and should stay that way, failing to set it to 0 will not matter. In any other case, if somehow a 0 slips in here, we no longer need to worry about it overwriting a non-zero value.

; get original properties of parental bow 
        set CValue to (GetGoldValue rBow)
        set CHealth to (GetObjectHealth rBow)
        set CDamage to (GetAttackDamage rBow)
        set fCSpeed to (GetWeaponSpeed rBow)
        ; modify properties based on materials
        if Horn == 1
            set CValue to CValue * 1.1
            set CHealth to CHealth * 1.1
            set CDamage to CDamage * 1.25
            set fCSpeed to fCSpeed * 1.1
        elseif Horn == 2
            set CValue to CValue * 1.15
            set CHealth to CHealth * 1.15
            set CDamage to CDamage * 1.35
            set fCSpeed to fCSpeed * 1.15
        endif
        if eval Fiber == 2
            SetIgnoresResistance 1 rProduct
            set CValue to CValue * 1.1
            set CHealth to CHealth * 1.1
            set CDamage to CDamage * 1.1
            set fCSpeed to fCSpeed * 1.1
        endif
        if eval( CValue ) 
            SetGoldValue CValue rProduct
        endif
        if eval( CHealth )
            SetObjectHealth CHealth rProduct
        endif
        if eval( CDamage )
            SetAttackDamage CDamage rProduct
        endif
        if eval( fCSpeed )
            SetWeaponSpeed fCSpeed rProduct
        endif

Share this post


Link to post
Share on other sites
On 10/14/2018 at 10:22 PM, HoundAkragth said:

Bathing:

Bathing is resetting before it gets to the actual bathing part of the script; I don't think it's a serious problem as the only things that are done in Bathe > 0 is remove "getting sick", maybe losing a soap bar, and adding the soap effects, but it'd have been nice to see the messages that are in those sections to make sure it's been done.

The early pre-emptive reset is intentional because it was necessary to clear variables otherwise carried over from an earlier version. Anyone who started using CB in the last several years (around 3-4) won't be affected. Though I suppose if the script was midstream when saved, then this reset kicks in, it would delete a soapbar. As a result, I commented out 
; set rSoapRef to 0 not needed, could delete a soapbar on game start
The old version doesn't need rSoapRef set to 0, it was only a wish to reset everything unless known to be counterproductive which included it in the list.

Share this post


Link to post
Share on other sites
On 10/14/2018 at 10:22 PM, HoundAkragth said:

Canoe Frame:

Mostly, this is a case of "Adding a Container Object to a Actor". Since I'm packing the new items... Yeah. Suggest CBCanoeFramePlacer instead of CBCanoeFrameC. Work-around is simply not to use Pack New Items.

This was hard to understand until I got into the weeds of the script. Once I did, it was clear as it could be. It is possible this will not work out as it should when the option to add to inventory is not set. But if that proves to be the case, it is easy to use the variable to place one or the other as the situation requires.

Share this post


Link to post
Share on other sites
8 hours ago, Munch Universe said:

Pemmican sounds interesting. For us modern types, whose exercise often consists of pushing keys on the keyboard, it might not be such a good thing. But for a hero in a cold environment full of hard physical exercise, it is certain to be a good thing. A basic version would be easy, just add tallow instead of salt. Flavorings are tempting, but would require a fair bit more effort to integrate into the existing scripting. I'd be tempted to give pemmican a low level bonus property due to the wealth of calories it would provide.

Your approach to testing sounds brilliant. If nothing else, putting a second pair of eyes on the code will help because often one gets trapped in a particular way of seeing things, then just never questions them again. Your fix to the bait problem, for example, immediately made sense to me but I failed to spot the problem until you pointed it out.

I know my way around GIMP2 well enough to retexture things reasonably well. Though when it comes to things like spectral properties, that tends to be a bit over my head. I know enough to recognize a problem but not necessarily how to fix it. I looked at Blender, then decided not to learn how to use it. It was a deliberate decision because I'm busy enough with the scripting that I didn't want to pile that on top as well. In addition, I like working with collaborators and if I can't find someone who is interested enough in a particular project to devote some time to modelling, then it probably isn't worth doing. In principle CB is so open ended that there is almost no limit to what could be done in its context. So it is useful to have some way to check if something is really worth doing. 

Another thing I tend to factor in a lot, but almost no one else can, present company most likely excluded, is how hard it is to make a change. Take pemmican, for example. Given a suitable model, the scripts will only need an extra line or two. The whole thing won't take 30 minutes. So even if it is relatively low value, it is so easy it is worth doing. Something of high value would be to restructure construction to use a series of wood pieces of different sizes and shapes. It would make CB a fair bit more realistic, but it would require redoing a large number of items, rewriting a dozen scripts, would create compatibility problems with existing saves and may end up weighing the mod down with excessive detail. We wanted to go in that direction some day but the hurdles were just too high to launch into it while the team was still active and we never got to it.

One of the efforts I'm particularly proud of is the barrels. A skilled animator, Koniption, created the barrels and animated them, then I rigged up the scripting. It was one of those cases where she couldn't have done the complex scripting they took and I couldn't have done the animation without spending a year learning how to do such things well. But together we produced something pretty spectacular. I realize most players probably barely notice, but in a way that is good, too. If everything goes so smoothly and immersively that it seems normal, that is a good thing. Unfortunately Koniption ran into some health problems and retired from modding, as far as I know. I haven't heard from her in a number of years.

Coming back to pemmican, it sounds like a retexture it all it would take. That might take an extra hour, so it is no big deal. GIMP2 needs an extension to handle what Oblivion needs of it (normal mapping), but is otherwise not hard to learn or use. If you are feeling ambitious and would like to take a crack at it, I'd be happy to explain. If you'd rather not, I can do it. To be honest, it would probably take less time for me to do it myself than to explain how to do it but I'd be happy to teach you how to use GIMP2, if you would like. 

I wish that the scripts weren't embedded in the esp/esm because I'd be able to take a look at the logic and take notes while my Windows machine is inaccessible, but oh well. I'll test the fixes you implement when I can in a few days.

Ah - I didn't realize the editor for textures was GIMP2. Probably should have. It's actually my primary image editor outside of Windows. If you get around to retexturing before the weekend, go ahead and just do it, but if not I can see if I can manage it. Should be fun.

I'd agree with you on the barrels as something to be proud of. Those are neat. If I remember right, there's a transition for the brewing between empty to grain-filled?

So, as a warning before trying to implement pemmican - it's not period-accurate for the medieval period Oblivion is based off of; it didn't exist in Europe until the colonial era. It did, however exist for the Native Americans, so there's that. If period accuracy is a concern, don't bother. Then again, tomatoes are also not period-accurate. So up to you.

Pemmican's the historical equivalent of protein bars, with fat instead of sugar, so yes, just like adding a protein bar to a normal modern diet without a corresponding increase in exercise, it would be a bad idea to do the same. It is, however, unlike jerky, something that a human can survive on for months before hitting problems. Jerky alone will result in protein poisoning - probably more familiar as rabbit starvation - in a matter of a few weeks. The flavorings actually aren't just for flavor; they're to increase the time before malnutrition sets in - scurvy, etc - but I'm digressing. I know a lot of useless information like this.

Share this post


Link to post
Share on other sites
11 hours ago, HoundAkragth said:

So, as a warning before trying to implement pemmican - it's not period-accurate for the medieval period Oblivion is based off of; it didn't exist in Europe until the colonial era. It did, however exist for the Native Americans, so there's that. If period accuracy is a concern, don't bother. Then again, tomatoes are also not period-accurate. So up to you.

Pemmican's the historical equivalent of protein bars, with fat instead of sugar, so yes, just like adding a protein bar to a normal modern diet without a corresponding increase in exercise, it would be a bad idea to do the same. It is, however, unlike jerky, something that a human can survive on for months before hitting problems. Jerky alone will result in protein poisoning - probably more familiar as rabbit starvation - in a matter of a few weeks. The flavorings actually aren't just for flavor; they're to increase the time before malnutrition sets in - scurvy, etc - but I'm digressing. I know a lot of useless information like this.

Thanks for the warning. If Oblivion was a strictly medieval European simulation, pemmican would be out of scope. But as you are certainly aware, Bethesda didn't design the game to be a strict medieval European simulation. In fact TES3 Morrowind leans pretty heavily on Native American culture and as you point out, the flora (and fauna) are not all derived from Europe. We've talked out this kind of thing in the team in the past. We do have the ambition of trying to be "realistic" but it is best to take the games and lore as a given, describing a foreign civilization on a foreign planet at some unknown time in history. If you consider the level of technology, it depends a bit on where you look. For the most part it is roughly Renaissance (availability of full plate wasn't until around 1500 plus or minus 2 decades) but the ships are probably about a century more advanced. The Dwemer ruins employ steam technology which is roughly Victorian in look and feel, but given that it works without maintenance for thousands of years, it is far more advanced than anything we have today. So Bethesda doesn't make it easy for us.

I'm guessing what you are calling protein poisoning is gout, a very painful swelling of the joints as a result of the accumulation of urea in the blood, which precipitates and forms deposits in the joints. Scurvy is caused by a lack of vitamin C and indeed, flavourings can help to provide at least some of the required vitamins. Most of these would affect the player over a time scale a bit long for the game. I suppose you could play for a year or two of game time, but in my experience about 2 months will get you through the main quest pretty easily. The whole disease system in Oblivion and all the TES games is really pretty absurd, but there probably is no good solution to the problem. Imagine playing for 7 weeks of game time and on the threshold of completing the main quest, your character comes down with the plague and dies. It would be entirely realistic and entirely frustrating. So sometimes we need to concede the limitations of the format and not worry too much about "realism". 

Don't worry too much about digressions. Often they lead to interesting ideas. I'm old school. An email which is longer than 2 paragraphs is not impolite in my book. If you know a lot of "useless" information, you are perfect for CB, since it is mostly a collection of "useless" information. The whole point to being interested in "realism" is so that stuff you learn in the context of playing a silly game might actually relate a bit to the real world and teach you something you may profit from. We strip complicated activities down into a few steps, but you do gain a little insight into things like cooking, construction and smithing. Maybe it is enough to spark some interest and get someone to look into these things in the real world. To me, that would be the real pay off for taking the time to develop CB, along with the comradeship of the virtual friends I make this way.

EDIT: With regard to the retexture, we are not in a hurry and if you would like to do it, that would be great. 

Edited by Munch Universe
pemmican retexture

Share this post


Link to post
Share on other sites
20 hours ago, Munch Universe said:

Thanks for the warning. If Oblivion was a strictly medieval European simulation, pemmican would be out of scope. But as you are certainly aware, Bethesda didn't design the game to be a strict medieval European simulation. In fact TES3 Morrowind leans pretty heavily on Native American culture and as you point out, the flora (and fauna) are not all derived from Europe. We've talked out this kind of thing in the team in the past. We do have the ambition of trying to be "realistic" but it is best to take the games and lore as a given, describing a foreign civilization on a foreign planet at some unknown time in history. If you consider the level of technology, it depends a bit on where you look. For the most part it is roughly Renaissance (availability of full plate wasn't until around 1500 plus or minus 2 decades) but the ships are probably about a century more advanced. The Dwemer ruins employ steam technology which is roughly Victorian in look and feel, but given that it works without maintenance for thousands of years, it is far more advanced than anything we have today. So Bethesda doesn't make it easy for us.

I'm guessing what you are calling protein poisoning is gout, a very painful swelling of the joints as a result of the accumulation of urea in the blood, which precipitates and forms deposits in the joints. Scurvy is caused by a lack of vitamin C and indeed, flavourings can help to provide at least some of the required vitamins. Most of these would affect the player over a time scale a bit long for the game. I suppose you could play for a year or two of game time, but in my experience about 2 months will get you through the main quest pretty easily. The whole disease system in Oblivion and all the TES games is really pretty absurd, but there probably is no good solution to the problem. Imagine playing for 7 weeks of game time and on the threshold of completing the main quest, your character comes down with the plague and dies. It would be entirely realistic and entirely frustrating. So sometimes we need to concede the limitations of the format and not worry too much about "realism". 

Don't worry too much about digressions. Often they lead to interesting ideas. I'm old school. An email which is longer than 2 paragraphs is not impolite in my book. If you know a lot of "useless" information, you are perfect for CB, since it is mostly a collection of "useless" information. The whole point to being interested in "realism" is so that stuff you learn in the context of playing a silly game might actually relate a bit to the real world and teach you something you may profit from. We strip complicated activities down into a few steps, but you do gain a little insight into things like cooking, construction and smithing. Maybe it is enough to spark some interest and get someone to look into these things in the real world. To me, that would be the real pay off for taking the time to develop CB, along with the comradeship of the virtual friends I make this way.

EDIT: With regard to the retexture, we are not in a hurry and if you would like to do it, that would be great. 

Whoops. Yeah, Renaissance is closer in time period. But that's very true; TES isn't a very exact match for any period in history, and then there's magic, in which I also include alchemy. There's also materials that don't exist in the real world, whose properties may have some technological implications. I wouldn't be terribly surprised if some inns had a refrigerator kept cold by frost salts, and there's been a bit in Skyrim about fire salts powering a forge (hmm... that's something that niggles my mind with an idea).

Protein poisoning's not quite gout. It is literally what its common moniker sounds like: starving to death (on a pure lean meat diet). Gout can result as a complication, though, and protein toxicity. Anyway, there's a limit to how much protein a human can convert into calories and process in a single day, which is unfortunately well below the calories needed to maintain weight. Beyond that much protein, eating more protein provides no more energy than eating dirt does. The symptoms will manifest in under two weeks and on average about a week - diarrhea, malaise, lethargy, slow heartbeat. Exactly what is the killer isn't certain - could be the high urea and ammonia in the blood, could be the organ failure caused by starvation, but the time that it takes seems to align with how long it takes to starve: about two to three months, assuming there is water. The cure's pretty simple: eat less protein, eat more fat and carbohydrates. The recommendation is that over fifty percent of caloric intake should be carbohydrates and fat.

I wouldn't want to implement this, as it makes things more complicated than necessary. Nor would I be terribly concerned with nutrition deficiencies for CB; most of them take months, and even years as you said and are impractical for the game.

As for how the disease system works, at this point I've slapped a "MAGIC" label on it. Along with a lot of minor things. Like how we're carrying around bloody pieces of meat for weeks on end without it going bad. Or how we're carrying six pieces of torso armor, a pair of boots and five warhammers (I'm exaggerating).

I do have a question - I don't want changes resulting from this - but is there a reason why ya'll decided on casting for jewelry instead of forging? I understand why hot forging - one, it's more... universally applicable and two, iron and steel weapons aren't cold-forged due to numerous reasons, and I do have some idea of why casting, but I was wondering.

And another question is about tanning. Was it because of the same time scale issue about nutrition deficiencies that it wasn't implemented?

I'll see if I can manage the retexture on the weekend, then.

Edited by HoundAkragth

Share this post


Link to post
Share on other sites
1 hour ago, HoundAkragth said:

I do have a question - I don't want changes resulting from this - but is there a reason why ya'll decided on casting for jewelry instead of forging? I understand why hot forging - one, it's more... universally applicable and two, iron and steel weapons aren't cold-forged due to numerous reasons, and I do have some idea of why casting, but I was wondering.

And another question is about tanning. Was it because of the same time scale issue about nutrition deficiencies that it wasn't implemented?

I'll see if I can manage the retexture on the weekend, then.

Regarding forging rings, I guess the truth is that we never really thought about it in any detail. I implemented it but I think CLShade and Ben were involved in conceiving of it. Now that you mention it, you have a point. It depends on what metal is being used. Gold, silver and copper melt at forge temperatures so that casting is an option. To fully melt Iron needs higher temperatures not readily achieved in a forge without bellows and I think even then the temperatures are better for getting it hot enough to work but perhaps not enough to liquify. One argument for casting is to illustrate the process, even if hammering would be another way to get the same result.

I'm afraid I don't quite track what you mean with "tanning". As in tanning leather? But if so, what does that have to do with nutrition? Or do you mean as in skin becoming tanner? 

Assuming you are talking about tanning leather, that was intended and might well have been the next major thing to be implemented. Introducing bulk salt was, in part, preparation for tanning. We have acorns to provide tannic acid and urine can be assumed to be readily available. I think what pushed this down the list of things to do is that making leather production take some time and more complicated leaves it less useful to the player than metal forging. We already have that problem with clothing, where there is a nice tailoring system but it is involved enough that the player needs to work hard for something relatively cheap while something rare and expensive can be made with comparative ease. There is no obvious solution to this problem because making smithing even more complicated does not seem wise, in this case more from the scripting side because the player experience isn't overly complicated.

I'm looking forward to see what you come up with for the retexture. If nothing else, it is enough of a change to rate a short explanation and perhaps gather a little attention on the Nexus for a week.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×