Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - Galgana

Pages: [1] 2
Suggestions / Vegetable dyes, tanning material, inheritable color data
« on: August 07, 2021, 10:45:35 PM »
After reading this post quoted below, I propose a new flora header tag for [tanning] that permits plants and plant parts to be used.
According to Wikipedia's page on heather,[1] "Formerly heather was used to . . . tan leather". So, how about adding it to "tanning material" along with animal fat and birch bark? For characters that are just starting out or scraping by or doing The Challenge, this would allow them to use heather for tanning and roast/eat the animal fat.
An associated [tanning:] property can specify which part of the plant will be accepted in the tanning process, with values of: plant (as the default), leaf, flour.
The flour idea comes from this accidental discovery:
I was about to tan a soaked elk skin with newly obtained bark. But I mistakenly chose birch-bark box of 'coarse grains' instead and, to my surprise, worked as tanning material. I had to fill the now-empty box and try it again to make sure. By not starting tanning but pressing escape during the pause when all conditions are met. Consequently, the birch-bark box, which was emptied when selected for tanning, did not refill when canceling. I repeat: I did not start the process.

Rye flour (made into sour mixture) can be used for tanning IRL, so initially I thought there was some purpose to all this.

But then, another thing was that I had a bag full of these same grains. That bag of coarse grains could not be selected for tanning.

So now I suspect it was the "birch-bark box of ..." that allowed the grains to be chosen in the first place. I have to test this with putting, say, dried meat inside a birch-bark container and try tanning with that.

I shouldn't even be reporting this, because now I want to use rye flour in this fashion in the future...

Color as a new flora property would also be a welcome addition. Now that we have fibres and yarn, clothmaking and tailoring seem closer on the horizon.
Dye plants could be designated by a [dye] header tag. Again, acceptable plant parts for the dyeing process should be specified.

I'm not sure about how color tinting for domestic animals is set up, but perhaps individual garments can also be tinted by the engine to give a visual indicator of being dyed.
I do know fur and leather clothing inherit defense values from the hides of both wild and domesticated animals, so why not colors from the individual animal as well? That could mean enabling tints for wild animals; I know I would be thrilled to encounter a herd of forest reindeer that all had different coat colors. But adding unique properties to pelts could complicate stacking them.
(An an aside: ideally, in animal husbandry the offspring will inherit traits from the parents - including color.)

I'm also thinking about color property being defined for textile plants to represent their undyed state, which could impact the intensity of blending the final garment color. But that may be extraneous to the dyeing process if it should incorporate lye from wood ash as a bleaching agent.
Bleaching would require (perhaps repeatedly) soaking raw cloth in a lye solution and then leaving it to dry in the sun. This means that bleaching will be restricted by the seasons; similar to retting, it can be accomplished quicker during the height of summer but takes more time during spring and autumn.
Dyeing would require a color fixative; I've read that salt or vinegar can be used. Salt already is present in-game, but vinegar could also be introduced as a product of brewing beverages. Cloth should be soaked in the dye solution, rinsed, then left to dry.

I had an encounter with a snake and the following happened:
Code: [Select]
(000000):56gg:[T]{029E05F7}      | The snake hisses at you.
(000000):56gg:[S]{029E05F7}      | Snake flees.
(3C5A98):56gg:[:]{029E05F7}      | You begin sneaking.
(143270):56gg:[#]{029E05F7}      | Aiming Zone: Head
(000000):56gg:[Y]{029E05F7}      | You try to kick the snake.
(000000):56gg:[Y]{029E05F7}      | You execute a skilled kick.
(000000):56gg:[Y]{029E05F7}      | You land a solid hit to its skull.
(3C5A98):56gg:[:]{029E05F7}      | The snake seems to have fallen unconscious.
(000000):56gg:[Y]{029E05F7}      | You try to kick the snake.
(000000):56gg:[Y]{029E05F7}      | You carry out a perfect kick.
(000000):56gg:[Y]{029E05F7}      | You land a solid hit to its skull.
(000000):56gg:[Y]{029E05F7}      | You try to kick the snake.
(000000):56gg:[Y]{029E05F7}      | You carry out a perfect kick.
(000000):56gg:[Y]{029E05F7}      | You land a solid hit to its abdomen.
(A80000):56gg:[!]{029E05F7}      | The snake hisses in pain.
(000000):56gg:[S]{029E05F7}      | Snake rises back on its feet.

Unless the UnReal World takes place in a prelapsarian Eden, snakes of course do not possess feet.
For a snake-specific set of rise and fail to rise messages, I suggest:
  • The snake rears its head.
  • The snake coils defensively.
Seals also don't have conventional legs so much as flippers, so I think it would be appropriate to provide them with special bodypart definitions: "foreflippers" and "hindflippers".
For the rising messages, I suggest:
  • The grey/ringed seal rises on its trunk.
  • The grey/ringed seal struggles to raise itself.
I also have some ideas for how to make the movement behavior of seals on land more specific to their anatomy.
One way to go about it is to implement a directional restriction to prevent a seal from rotating 180° within a single turn. Something like how spirit NPCs aren't supposed to show their back to the player, though I'm unsure about the specifics of their AI regarding mobility.
To balance this rotation nerf, a seal could strafe in its relative left-right directions somewhat faster than its forward land speed as a way to simulate rolling to the side (and perhaps gain speed from rolling downhill, like how it happens in this video with an elephant seal; the seal uses its hindflippers to propel down the grade around the 21-seconds mark.)

It's been a while since I've observed seals in-game, so I can't remember if their ability to climb onto skerries and ice has a foreleg injury check. Breaking their front flippers definitely should impair attempts to haul-out, though I've seen elsewhere that moving along a relatively flat surface does not always require using all the flippers (example: the seal closest to the camera in this video), and forward undulations on land generally don't depend on the back flippers anyway (see this PDF of "Kinematics of terrestrial locomotion in harbor seals and gray seals: Importance of spinal flexion by amphibious phocids").

Posted in a separate thread as per Sami's recommendation.
I encountered another issue with tying equipment. This one concerns crafting with stacks.

I wanted to use a crafting recipe that called for 60 ft of rope, for which I added the [nominlen] tag. In my inventory were 4 units in total of 15-foot leather ropes (2 decent quality and 2 fine quality). After selecting these ropes for use, the interface said it still needed 30 ft. At this point, I had no other ropes available for selection.

I cancelled the crafting menu and combined each pair of leather rope. The crafting recipe successfully accepted 30 ft decent rope plus 30 ft fine rope.

It seems that the number of units in a stack were ignored and only the base footage was taken into account.

DIY code; external assets have been commented out:
Code: [Select]
.Sledwagon. "Punt" *TIMBERCRAFT* /2h/ [effort:3] [assist:3] [phys:stance,arms] [noquality]
{Board} (8) [remove] [ground] '+for frame and skis'
{Block of wood} (2) [remove] [ground] '+to split for summertime wheels'
{Axe} <Carving axe> '+for shaping'
{Rope} =90= [remove] [nominlen] '+for securing loads'
{Leather rope} =60= [remove] [nominlen] '+for pulling harness'
//{Leather tarp} [remove] '+to cover loads from weather'

Just to clarify, I also had 6 units of decent 15 ft {Rope} in my inventory which were successfully accepted as inputs. The issue encountered here concerns {Leather rope} stacks of different quality.

After bartering for goods with a human villager, I returned to the same village weeks later and discovered that one of the resident dogs was carrying things I had traded away.

While I don't remember exactly which human NPC here was the one I had chatted with, I've got a fair idea that the entire stack of clothes I had sold did not exceed their individual carrying capacity, since I hadn't observed the NPC drop items at their feet immediately after the trade was concluded. This fact contrasts with a barter exchange made elsewhere which had a few hundred roasted meat cuts be dropped by an NPC afterwards (and I tidied up the area by moving the stack indoors).

The dog in the screenshot is not for sale, which makes me unable to determine whether ownership of the dog might also transfer ownership of the items in its inventory.

When I started a somewhat long time-consuming activity, the weather was rainy at first but then ceased to rain partway through my crafting progress. Even though the raindrops graphic immediately cleared up in the screen, the audio of rain.ogg continued alongside the axework.ogg loop until the crafting action was completed.

When a sleeping animal is selected to be milked, the animal will wake up and wander around at the start of the milking process instead of when it is completed. This behavior is contrary to the feature described in version 3.19:
* Animals will stay put while being milked

I encountered this issue while shopping at a village. I picked up a stack of 11 boards from the ground, which made my character unable to move due to becoming overencumbered with other items in my inventory, so I dropped all 11 boards on the same spot. After exploring the buildings for any other available goods, I noticed many villagers were bunching up near the boards as though intending to pick them up but nobody did. I picked up the boards again and dropped them indoors, which made the crowd disperse.

It seems that the villagers' AI wanted to reclaim unpaid boards that were dropped outdoors, but the total weight of the stack may have prevented the NPCs from taking them.

I used a 15 ft piece of leather cord to build a fence and then deconstructed the fence. 2 pieces of 4-foot cords were returned but the weight for each remained 1 lb.

The leftover 7 ft piece of cord was the expected 0.5 lbs. Combining the pieces back into 15 ft resulted in a cord weighing 2.5 lbs.

edit: I encountered another issue with tying equipment. This one concerns crafting with stacks.

I wanted to use a crafting recipe that called for 60 ft of rope, for which I added the [nominlen] tag. In my inventory were 4 units in total of 15-foot leather ropes (2 decent quality and 2 fine quality). After selecting these ropes for use, the interface said it still needed 30 ft. At this point, I had no other ropes available for selection.

I cancelled the crafting menu and combined each pair of leather rope. The crafting recipe successfully accepted 30 ft decent rope plus 30 ft fine rope.

It seems that the number of units in a stack were ignored and only the base footage was taken into account.

Bug reports / [Fixed - persists in 3.70beta3] It's a boy - 5 grams
« on: July 09, 2021, 04:05:09 AM »
While I was killing Driik villagers for loot, I noticed that the corpses of boys displayed 0 oz in weight. I switched my measuring system to metric and checked the weights again, which displayed as 5 grams. The girl children in contrast were within a normal weight range of 20+ kilos.

I made a new character to check whether the weight aberration happens with kids from other cultures. I spawned in the Koivula and found another boy who weighed 5 grams on death.

Since these are fresh killings, I don't have data regarding the resulting bone weights for male child corpses.

(Wow, this post is so macabre.)

Bug reports / [3.70b] create_objects text file does not update
« on: June 28, 2021, 02:47:49 AM »
I wanted to check how the indexing of base items has changed because my modding setup adds a lot of flora, which sometimes need to be pruned to keep within the 401-object limit.

However, creating a new character or loading an existing save file does not prompt the create_objects.txt to be generated fresh.

Mod Releases / [Spreadsheet] Adventuring Log Template
« on: June 15, 2021, 10:45:32 AM »
This is a Google Sheets template designed as a replacement for the in-game character [L]og that was removed from the Unreal World v3.63 build.
It is meant to support recording the adventures of a single character per file instance.

Google Drive users can save a copy of the spreadsheet to their drive.
The file can also be saved in different formats offered by the Google Sheets service (MS Excel, OpenDocument, etc.).
Permission is granted to modify this template and share derivatives.

Preview of log excerpts on imgur.

Details, Features, and Recommendations for How to Use:

Make a record of your character's adventures and journeys that you can keep track of from day to day and year to year!
Take notes about animal sightings, encounters with other humans, your standing with the spirits, crafting and gathering activities, and more!
The "Y" tab is the actual journaling template.
The "Y16" tab represents a new character's start and you can duplicate the Y-sheet to begin a fresh page for the new year (Y17, Y18, and so on).
To find your character's age in-game, use the [P] command to open the Character Profile Screen.

Take stock of your settlement's animals, food stores, available tools, and more!
The "camp:" tab is intended to be copied as needed for the player's important settlements.
There are columns available for listing the valuables, tools, weapons, and food items stored at each site.
Users of Night's URWCharacterMenu can grab the camp's coordinates when using the overworld/zoom-out map.
In-game map markers will also track where you have established shelters and settlements.

Keep track of your clothes and armor quality:
Wish you had a better shirt? Want to upgrade your threads for the best looks and protection? Sort out your wardrobe with the "outfit" tab.
Items in the base game are listed by material and (roughly) by bodypart coverage.

The "census" tab is intended to record information about animals you obtain through bartering or otherwise.
How much does your new bull weigh? Find out its carrying capacity by pushing rocks on its back until it can't hold any more. Will it be good for shouldering a log (400 pounds) or an entire tree trunk (500 pounds)?
Conditional formatting is set up so that creatures with a carrying capacity of at least 400 pounds will have their Weight formatted in italics, 500+ pound-lifters will have additional underlining, and monster hefties (600+) pounds will be italicized, underlined AND bolded to show these are your prized packers!
The census can help you identify your livestock by color (or at least you can try to judge what shade the randomized color tinting turned it into).
You can also assign a "job" to your animals to keep track of when they're carrying specific tools, armor, clothing, etc.

Keep a watchlist of goods you would like to purchase:
A reputation in town as a fair barterer will be a plus in order to negotiate a better deal when you're looking to buy.
Ideally, you want to build reputation by trading frequently for small goods before tackling a big purchase such as livestock or a glorious, masterwork-quality battlesword.

Time your fishing hauls
Passive fishing with nets has its rewards and its risks. If you leave your net in the water for too long, you might end up with a load of dead, stinking, rotten fish that won't be good for anything!
Make a note of when you set your nets so you can try to come back for the catch at a reasonable time.

Time your sacrifices to the local spirits
A general sacrifice can be made once a day separately for the spirits of the forest and the spirits of the waters.
Make sure you don't annoy the spirits with too many offerings by tracking whether you've already had them done for the day.

Measure the fruits of your hunting and trapping
So you finally caught the Big Elk for the Advanced Adventures course? Well, just how big are we talking here? Bring up one of the inventory menus (push, pick up, move) to find out how many pounds (or kilograms in the upcoming Unreal World v3.70) the beastie weighs. When you're done butchering it, you'll be able to count how many cuts the carcass gave you.

Keep track of your food preservation techniques
How will you manage to eat 200 pounds of venison before it all goes bad? Even if you chuck the meat in the cellar, it will only keep for a handful of days at most. Sure, you can salt it, but you need to buy the salt first. You can smoke it, but you'll have to tend to the fire every day for a couple of weeks. You can dry it, but the weather needs to be right for it.
The journal can help with timing these cooking activities to reduce spoilage and waste.

On a quest to do what, for whom, when's the deadline, and what sort of reward is promised?
Take notes about your questing activities, how many squirrel furs-worth of credit you have at a village, and what goodies you discover in a treasure cache.

Data validation: The "dataval" tab contains a list of values that are meant to go in the journal columns.
Some cells under the Months column also have hover-tips about when certain seasonable resources are available (milk, bark from trees, birch twigs, and the season for drying fish and meat).
Game file urw_defs.txt (located in the messages folder of the game directory) contains strings for the names of the months. Players who customize the calendar should adjust the dataval column to match their game.
The Day number column accepts only values 1 through 7.
The Week number column accepts only values 1 through 13.

Color-coding for cultural regions, seasons, time markers, livestock species, activities.
These cell colors are applied via conditional formatting on the relevant record columns (not actually done in the dataval tab).
If you want different colors, select the column on the Y-sheet or census-sheet and change the condition rule or remove it entirely.

Custom activities are supported; overwrite the miscellaneous cells.
If your activities exceed the default 10 custom activities, make sure to edit the data validation on the journaling sheets to extend the range of valid cells. Usually this is as simple as editing the row number in the Google Sheets validation window.
Example activities: fire, forage, forge, hidework, weave

Roughly 8,200 years ago, the island of Yuzhniy Oleniy Ostrov in Lake Onega in the Republic of Karelia, Russia, housed a large burial ground where men, women and children of varying ages were buried. Many of the graves contain an abundance of objects and red ochre, signifying the wish to ensure the comfort of the buried also after death. Pendants made of elk incisors were apparently attached to clothing and accessories, such as dresses, coats, cloaks, headdresses and belts. Although no clothing material has been preserved, the location of the elk teeth sheds light on the possible type of these outfits.

A people of grooved elk tooth pendants

A study headed by archaeologist Kristiina Mannermaa, University of Helsinki, aimed to determine who the people buried in outfits decorated with elk tooth ornaments were, and what the pendants meant to them. The study analyzed the manufacturing technique of a total of more than 4,000 tooth ornaments, or the way in which the teeth had been processed for attachment or suspension. The results were surprising, as practically all of the teeth had been processed identically by making one or more small grooves at the tip of the root, which made tying the pendants easier. Only in two instances had a small hole been made in the tooth for threading, both of which were found in the grave of the same woman. The tooth pendants found in graves located in the Baltic area and Scandinavia from the same period as the Yuzhniy Oleniy Ostrov graves are almost exclusively perforated. Perforation is the surest way of fastening the pendant, but making holes in the narrow tip of a tooth is more laborious than grooving.

Link to study:

Mod Releases / Galgana's creature sprites
« on: August 16, 2020, 10:06:36 AM »
This weekend, I took some time to revamp some predator models. Check them out in the before/after demo picture under the spoiler. Their prone sprites are also revamped.
The bird models had a bit of recoloring to make black grouse and capercaillie more distinguishable.
I also revised the water spirit after witnessing him walk on shore because the vanilla sprite did not help my immersion (especially since he showed up with nothing in his inventory).

Installation: unzip and drop PNG files into the truetile folder

list of revised sprite sheets:
  • black grouse
  • capercaillie
  • arctic fox (updated v1.03)
  • red fox
  • lynx
  • wolf
  • water spirit
  • dog (v1.01)
  • elk - male and female + antlers (v1.02)
  • sheep - male and female (v1.02)
  • squirrel (updated v1.03)
  • hare (v1.02)
  • small mustelids (v1.03)
  • willow grouse (v1.03)

See Wickham's Graphical Enhancement Project v1.3 for revamp of the forest reindeer by Krutzelpuntz.

Preview and comparison of animals with vanilla eastern man and prone bull for scale (v1.0):
Spoiler: show

Preview and comparison of water spirit (npc-wtrman):
Spoiler: show

Mod Releases / Cethegus sledwagon reborn
« on: July 24, 2020, 05:55:23 AM »
Hauling logs around is such a pain when you're building a cabin. I put together a retooled version of Cethegus's sledwagon from the old forum, so now it uses a loading mechanism inspired by Privateer's quiver mod.

Due to the nature of single-product crafting recipes, unloading cargo would destroy the sledwagon in the original mod. Privateer's quiver mod temporarily turns arrows into fish so they can be put into a container. Normally, items placed in a container cannot be recovered from the inventory, so another crafting recipe is needed to produce items by weight from the container's contents.

I applied the same concept to the sledwagon, effectively making it a glorified tub instead of a boat. Its standalone weight is 25 lbs (which seems to be the maximum property for the base object). Since logs are generally too heavy to lift, the recipe for loading cargo converts logs into a token 5% of the original weight (from 400 to 20 lbs). I've set the sledwagon's carrying capacity to 240 lbs which should be enough to return 2 walls' worth of logs. If your bull is capable of carrying a 500-pound tree trunk, this mod will let you load it up with cargo worth at least 24 logs at a time, which is ridiculously overpowered but convenient when you're committed to clearcutting a map tile for a farm. Be kind to your beasts of burden and spread the load if you can. Also, feel free to adjust the weights to your liking.

Unloading has a 1-minute preparation time to put logs on the ground. You must be able to lift the sledwagon in order to unload logs. I recommend reducing the container capacity and maximum batch/patch count if your character has a low encumbrance threshold.

I've provided alternate sprites for the sledwagon you can use depending on the season: skis for winter and wheels for summer. Changing the TILEGFX parameter from sledge to sledge1 will make stacking look a bit wonky since they'll be considered distinct enough to separate, so I recommend simply swapping the file name in your truetile folder.

Copy to DIY file:
Code: [Select]
.Sledwagon. "Wooden tub" *TIMBERCRAFT* /1h/ [effort:3] [phys:arms,stance] [assist:3] |-2| [noquality]
{Board} (8) [remove] [ground] '+for frame and skis'
{Block of wood} (4) [remove] [ground] [optional] '+for summertime wheels'
{Axe} <Carving axe> '+for shaping'
{Rope} =150= [remove] +'for securing loads'

.Load cargo. "Roach" *COMMON* /10/ [patch:12] [effort:3] [phys:arms,stance] [assist:3] [noquality]
{Sledwagon*} [ground] 'stand near sledwagon'
{Log} [remove] [ground] [patchwise] [name:%s cargo] [naming:original]

.Unload logs. "Log" *COMMON* /5/ \1\ [patch:12] [effort:3] [phys:arms,stance] [assist:3] [noquality]
{Sledwagon of log cargo} #20# [remove] [patchwise]


Mod Releases / Feeding livestock, manure
« on: July 23, 2020, 03:13:06 AM »
We currently can't feed non-dog domestic animals, so this mod should fill that gap in gameplay.

After livestock digest food, they will leave poop (though it will be a pile that sits in the exact spot you were standing due to modding constraints), which can be burned as fuel or used as manure in preparing fields.

Field prep with poop is an alternative to the slash-and-burn method and does away with the waiting period before planting when the embers cool down (as well as the number of keystrokes needed to lay down fuel for a decently-sized farm plot). Instead of using a shovel, a rake is required to distribute manure into the soil. Prepared fields can be made through the build menu but this also makes any tile of prepared soil susceptible to being deconstructed.

Copy to DIY file:

Code: [Select]
.Feed livestock. "Branch" *AGRICULTURE* /.1/ \8h\ [patch:10] [effort:0] [noquality]
{Raw ingredients} #15# [remove] [patchwise] 'raw feed'
[NAME:dung pile]

.Rake. "Sesta" *AGRICULTURE* /40/ %30%
{Axe} <Handaxe>
{Staff} [remove] 'for handle'
{Wooden stake} (3) [remove] '+for tines'
{Tying equipment} =15= [remove]

Copy to BIY file
Code: [Select]
.Prepared Soil. -P- *BUILDING* /30/ [effort:2] [assist:3]
{dung pile} (10) [remove] [noquality] '+for manure'

Pages: [1] 2