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.


Messages - aat

Pages: [1] 2 3
1
General Discussion / Re: ##urw IRC Chatroom
« on: May 27, 2021, 08:52:24 AM »
Not sure how much the IRC is still used, but maybe it would be best to move it to FreeNode successor, LiberaChat, given the recent takeover of FreeNode by "Korea's crown prince"

More details here:
https://gist.github.com/joepie91/df80d8d36cd9d1bde46ba018af497409/

2
Development News / Re: Auto-cutting and other tying equipment additions
« on: February 24, 2021, 02:45:56 AM »

They would probably go into mediocre/average category, somewhere between the strong and thin..  to the existing universal "tying equipment" category with no specific term of it's own. But we're still pondering, as the categorization is tricky. Because there's possibility to craft leather ropes the leather cords wouldn't quite fit in the strongest section.

Yes, that's something you should be able to do, and I'd like to add it. The threads obtained this way wouldn't always be too long, but still usable for some things.

That would be reasonable. I'm hoping hemp processing comes along with these additions as "easy" by-product, but we'll start with nettles. You should be able to make strong ropes from nettle too. The best system would be to allow processing any harvestable fibres into threads, and any threads into yarns/strings, cords or ropes.

That's amazing that we will be able to extract fibers from plants! Many mods try to add retting and weaving already, but having it the base game will be much better!

Will be yarns made using a spindle and a distaff?

Will this open up the possibility of weaving yarns into to cloths, and then use raw cloths to make clothings? Would be cool to make linen cloths from flax

3
Suggestions / Re: Note taking
« on: December 10, 2020, 03:19:24 PM »
@Night, with regards to note taking/journal writing for players:
While I agree it is a useful thing to note down stuff, I am not sure it would be worth the programming effort to do it inside UW.
I feel it would be better to simply focus UW programming effort on adding/improving borderless-window feature so that people can quickly/effectively alt+tab to their favourite text editor with all the features, shortcuts, defaults they love.

@JP_Finn, I do something similar: I simply use CTRL+P SHIFT+P screen 'current age in days'  information combined with map markers to mark pickup dates on stuff.
e.g.:
* current age = (16 years) + 130 days.
* preserve skin screen says it'll be ready in 7 days.
* I add a marker saying "cured fine elk skin 137" (i.e.: pick up date is day 137).
Next time I travel (or plan to travel) towards that part of map, I just need to take a quick look at CTRL+P (character age info) screen as a primitive form of today's date and compare that value with the date in map bookmark text.

edit: corrected the keystroke as shift+p
I didn't know about that command too check the age! Good to know

Anyway, it is a bit sketchy and not so immersive.. as if we would think about our age in days in order to remember stuff in our calendar.

What I do is to convert the date to urw calendar system: year divided in quarters of 13 weeks with weeks counted in reverse from the end of the quarter.

If something is ready in N days, it's quite easy to do the math. just divide by 7 to get the number of weeks and subtract it from current week number, then add the remaining number of days to the current day number, subtracting 1 more week if you go over 7 days. If the week number goes to zero or below, it means you get to a new quarter, so you need to subtract the remaining weeks from 13

@Night indeed it would be nice to have a simple in-game editor.. it wouldn't be so difficult as it seems, the code to add notes to markers is already there.

Or alternatively, having markers with the "ready date" be automatically generated when initiating a long task like curing, smoking or drying

4
Hi Night, thanks for the feedback, and for sharing your documentation on the CRS file!

I'd like to cross check the entity struct with the OBJ file, maybe we can identify the inventory, with the possibility of injecting modded items on creatures and characters. Or even spawning new entities!

One thing I couldn't find is how the game knows that those are the robbers associated to the quest. Maybe their position on the entity array is stored somewhere?

5
Mod Releases / [Tool] WhereIsMyRobber - a "Homeland Robbers" tedium remedy
« on: December 05, 2020, 02:57:07 PM »
WhereIsMyRobber

Have you haver got bored to death by looking for the robbers in the "Homeland Robbers" quest? Do you have some better use for your time, rather than exploring 20x20 tiles one by one? Then this is for you.

If you never had the pleasure the excruciating experience of this quest, you need to kill a group of robbers which are troubling some villagers. Yet, the real challenge of this quest is not the fight, but actually finding these robbers, for which you are given just a indicative area of their location.

But, despite being 4 robbers with a shelter, the robbers do not appear on the zoomed-out map; looking for trails on the zoomed-out map won't work either. Even standing on their actual location tile won't prompt the encounter on the zoom-in map, like instead occurs when you meet a squirrel or other animals.
How are we supposed to spot a squirrel hiding on a tree but miss a roaming squad of robbers I have no idea. Especially because the robbers are supposedly looking for victims to assault. Yet, you could spend days in the area without never being approached.

So, the only way to find them is zooming into every single individual tile of the area, hoping to be lucky. Obviously, it is not the most time-efficient way, given that there could be about 400 tiles to look into. 

In conclusion, I think this quest is too broken to be enjoyable, and I looked for some solution by digging into the game files.

Here I make available a simple Python script to find the nearest robbers, and give instructions on how to reach them.

Instructions

  • Install Python 3.8 or later versions from here. This is required to run the script
  • Copy the script into the folder of your savegame. This is the folder with the same name as your character that is located in the game folder
  • Save your game with your character near the area where the robbers are supposed to be found
  • Run the script by double clicking on it. On Windows, a Python window will open with a text prompt
  • Press enter in the text prompt, and the script will look for the nearest robber and give you instructions on how to reach it on the zoomed-out map

I have tested this on Linux. Please let me know if it works also on other platforms. There are no reasons it shouldn't but I am ready to fix it if there is some quirk


Visual example
The robber quest area
Spoiler: show


Where are they hiding?!
Spoiler: show


They were so close!!
Spoiler: show


On the specified tile, no tracks. Is it really the correct one?
Spoiler: show


Zooming-in reveals the robbers' shelter! The robbers must not be far
Spoiler: show


And there they are
Spoiler: show


Notes
  • The script does not know which robbers belong to the quest. It will simply show you the location of the robbers closest to you. That's why it's better you run it after you are near the quest area
  • If you keep pressing enter in the prompt, the script will display farther and farther robbers.

Technical details
For this script I have partially decoded the CRS and URS savegame files.
While it is not within the scope of this script, it is possible to use this script to reveal the location of any creature/human near the player. I have already decoded the "id" bytes for other entities different than robbers, like wolves, bears, njerpez, elks etc. But that would be cheating, and it would make exploring meaningless and the game boring.   

If you want to contribute to "decoding" the creature files, you can find the script repository here:
https://github.com/pietralbi/urw-data-scripts

I might make a small modification to make this work also for the "wounded adventurer quest", by locating the assaulting bear, since that quest is just as broken as this one. But at least the "wounded adventurer" gives you a hint on the terrain-neighbouring terrain where the shelter is, which limits a lot the tiles to explore.

6
Modding / cookery syntax :number:
« on: November 29, 2020, 10:44:57 AM »
It's been a while I wasn't meddling with URW, and I finally decided to come back and updated my (unpublished) mod

Taking a look at the new 3.63 files, I realized that some new syntax appeared in cookery_glossary.txt

Quote
.Vegetable stew.      *COOKERY* /5/  \90\   %20%   :148: 

What is the  :148:   supposed to mean? I didn't find any explanation in the wiki modding section nor in the changelog notes

It seems that all recipes have the value 148, but what it represents?

7
Bug reports / [3.61] Crafted clothes can't go over decent quality
« on: December 24, 2019, 07:58:56 PM »
I feel this has changed since version 3.52:

Although using harsh fur to make clothes ends up having a cloth with rough quality, it seems like that it is impossible to make clothes with fine or masterwork quality even when starting from fine or superior fur

I've tried also to edit the diy_glossary.txt, with no success:
  • changing the crafting skill from COMMON to HIDEWORKING (which my character had at 91%),
  • adding the %90% in the recipe name to "increase" the skill and making more likely to produce better quality crafts
While doing the above changes works with normal crafts, they seem completely bypassed when crafting clothes (I've tried fur clothes only).
Hence I think it's a bug

 

8
Bug reports / Re: Not working on ubuntu 16.04 - sound only
« on: December 11, 2019, 10:46:53 AM »
Uhm, I've been playing on fedora linux since 2017, first with the standalone version, and now with the steam version, and never had any problems.
I think the steam version runs via libraries pre-installed by stem, but since I don't like to play via steam I also had to install the sdl2 libraries via package manager, otherwise it would not run.

It shouldn't be that difficult to install SDL2 with apt, so it sounds a big mess what you had to do, and it's likely the source of the problems.

Try to uninstall all the sdl2 packages first, and then re install again.

Now it's years I don't use Ubuntu (and for a reason), so these commands might have some wrong syntax, but use apt-get to list all the sdl2- related libraries:
apt-get search sdl2

Then remove all the sdl2 packages with
sudo apt-get purge pkg1 pkg3 ... pkgn

Then install them again with
sudo apt-get install pkg1 pkg3 ... pkgn

Where pkg1 pkg3 ... pkgn are ALL the packages with sdl2 in the name
I know  this is very basic and likely not helpful, but that's what i can suggest without having any error log.

Did you try running urw from terminal? Are there any errors appearing in the terminal once you launch it?

9
Modding / Re: Any active modders?
« on: December 04, 2019, 02:27:20 PM »
Some of these are directly tied to other areas of code/data within the game, in particular I noticed I wasn't able to find some herb effects while documenting herb addresses in the item struct, I noticed that they changed when i edited some of the strings to a different base herb, probably indicating the default values are hardcoded or stored elseware, currently I've just been looking at CharacterName.OBJ file which contains the data for objects the game has generated over play time, the default object list is CONSTANT.OBJ, which could contain the data, but I haven't gotten around to looking at this in more detail as I'm mostly still documenting other objects generated by the game, some of which aren't included in CONSTANT.OBJ such as corpse's and different states of hides/meat cuts from cooked to uncooked, soaked hides, tanning hides, etc. There are some flags for weapons, but I haven't identified them with certainty, my best guess is some sort of identifier as to weather the weapon damages hides or not when used, but I haven't verified this, only a conclusion based on a comparison of weapons which lacked the value seemed to be non-edge based weapons. I don't have a Northern spear in my characters data so I'm not able to compare that currently, but if anyone would like to donate game files for research purposes I could certainly use them, as I want to have multiple comparisons of data files for the best estimate as to what data is what, additionally many people have far more progress than me in the game and generally have more save data to work with. I can also provide modified versions of files for testing purposes if someone would like to help me in documenting the effects of the data changes. Lot's to talk about on the subject of data and files, would be better to talk about it over IM.

You'll have to explain what you mean here better, I'm not sure what kind of limitations I have when it comes to recipes yet, I could possibly learn more by tracking a mod's recipe data (if i can find it), but I'm not familiar with the actual official modding syntax yet so I'd be shooting in the dark for a little while (not even sure how to install an official mod yet aside from copying over the main files? lol).

Ahh I see you are not familiar with the modding system. It's actually very simple, much simpler than memory editing. I try to get you started here, because it can be extremely useful for the memory documenting process. You don't need to wait to find a Northen spear in-game, you can just make it!

This page on the wiki tells most of the things, I've been trying to update it with the things I've discovered via sperimentation:
www.unrealworld.fi/wiki/index.php?title=Modding#Item_Property_Parameters

In the main folder of UnReal World, open the diy_glossary.txt file. You can see this recipe for the shortbow, that you find in-game in the weapon's menu:

Code: [Select]
.Shortbow. [effort:2] [phys:stance,arms] *CARPENTRY* /320/ |2|
{Board} [remove]
{Axe} <Carving axe>
{Knife}
{Cord} =5= [remove]

This defines entirely the recipe for the object "Shortbow".
  • [effort:] is how much fatiguing it is, from 0 to 5
  • [phys:] is which physical condition you need to have (standing, no debilitating arm injuries)
  • *CARPENTRY* means it uses the carpentry skill to determine the quality of the object (and maybe also modifies the duration of the craft)
  • /320/ is the base duration of the craft in minutes
  • |2| is a skill gain modifier for the CARPENTRY skill

Then there are the required ingredients listed below:
  • {Board}: a board. that will be consumed in the process (removed from the inventory)
  • {Axe} <Carving axe>:  an axe, preferably a carving axe
  • {Knife}: A knife
  • {Cord} =5= [remove]: A cord of 5ft  that will be consumed.

We can add any recipe for any object in-game in this way. For example, if you want to make 5 Northern spears, just write:
Code: [Select]
.Northern spear.    (5) *COMMON*    /0/   [effort:0]


Be sure to leave a blank line after. You don't need to close URW or reload a save: the recipe will be read on the fly while running.
You can see there are no ingredients specified here. This is basically a cheat recipe: you are creating 5 Northen spears, from nothing. instantaneously and with zero fatigue!

The above works for objects that have no recipe yet. Say that you want to test an object that has already a recipe, like the Shortbow, but you don't wont to modify the original. What I do is the following:

Code: [Select]
.Shortbow test. "Shortbow"   [effort:0]    *COMMON*   /0/
[NAME:Shortbow]


In the first line, the game will create a recipe for an object named "Shortbow test", which inherits all the properties (graphics, weight, uses and all hidden properties) of the Shortbow. If we leave like this, you would see in your inventory an object named "Shortbow test", but we don't want that.
That's why we override the object's name with the [NAME:Shortbow] syntax. In this way, the object created will have properties AND name of the Shortbow, and will "stack" with other Shortbows made with the original recipe.

Now, under the hood I don't know if the game is actually creating a NEW object which is game-wise indistinguishable from the original one, or if effectively it is still the original object.

I hope it was not too confusing.
Anyway, this is the way I am testing the mod as I'm developing it. I actually have a file in the game folder, named "menudef_testing.txt", with the following line:
Code: [Select]
.Testing. -Q- *MAKE*
This creates a "Testing" sub-menu in the crafting menu
Then I have a "diy_testing.txt" in which I write the recipes I use for testing:

Code: [Select]
[SUBMENU_START:Testing]

.Rye bread. (10)   *AGRICULTURE* /1/ |-2| [noquality] [effort:0] [phys:arms,stance,one-armed]
{[NEARBY_TILE:Hole in the Ground]} 'Dig a hole in'
{[TERRAIN:open_mire]} 'next to a open mire'

.Northern spear.    (5) *COMMON*    /0/   [effort:0]

.Paddle 2. "Paddle" *COMMON* /1/
{[TILE:water]} 'Be in the waters'
{[TERRAIN:lake]} 'in a lake' 
{Sesta} '+to probe the bottom'
{Net}     '+to scoop'

[SUBMENU_END:Testing]

-end

Using this syntax, you can quickly add any item to your inventory and check the memory address for a faster documenting process.

 By the way, I'm really waiting for you to release a Cheat engine that can fast forward/rewind time. This would be incredibly helpful in testing modded plants and agriculture, since waiting months in-game is prohibitively time consuming for testing purposes.
 

Funny I was just looking at caethan's mod files the other day, admiring his work and efforts. I would defiantly be up for this, if you wanna chat more about it we can hookup on IM and get a workflow going on my side.

I'll be updating the main thread with some contact info, and I'm considering opening up a group chat on discord or somewhere else to get at least some connections/conversations started, forums are great for long, clear, thoughtful thinking but this is closer to sending a letter than having a conversation where our ideas can evolve at a more rapid pace.
Cool! That's great! I'm still working on the ironworking part, and then I need to test it for balance, but the weaving part is pretty much done, and I've already listed the many sprites I need for that part (in the code, I've commented with //Todo graphics). My time-zone is not really forgiving for IM, but I was also thinking about a discord group. Would be great to set up discord group for URW! To discuss about the game in general and even modding ideas.
-- Wait I've seen that you posted your contact. I will contact you soon-ish.

Also just wanted to throw it out there, the more things we can get documented in memory, the higher the chances are someone (maybe myself, maybe someone else) can make things like map editors and tools not currently available, however the line is drawn where-ever the Enormous elk team decides to draw it, making mods to enhance the game is one thing but we need to respect the creators wishes as to what they want made publicly available, being that the game isn't inherently pay to play (protection wise, I believe), I don't want to be the guy creating tools that will create a run away effect where the game is effectively used as an engine, rather than enjoying and expanding its original content. It would be a dishonor to this games development history and DECADES of continuous passion from the developers, and for most of you this probably doesn't seem like it's a big deal, but I've developed and been apart of communities of developers and modders for several different games over many years, and I can tell you from experience, modifying memory can be fun, creative, innovative, and an overall enjoyable experience for everyone, but it can also ultimately, destroy an app from its core, for its developers and users. Most people are familiar with this experience in the form of multiplayer game cheats, such as aimbot and ESP in the case of FPS games, but there are many dangerous ideas that can be executed using reverse engineering processes which can have a longer lasting negative impact, It's only a matter of imagination and code. Just my two cents on it.

I totally agree here.
On my side, I just wish more game mechanics were exposed to modding without having to resort to any hacks. I hope Sami can extend the modding functionalities after he finishes fleshing out the 3.60 updated.
I think mod help keeping games and communities alive. But of course, any exploitation you describe would be very dishonorable, given the passion and dedication this game has received and keeps receiving.
Would be nice to know the option of Sami here.
Maybe in the future the freeware version could become just a demo, since the donation-based has become dry? I think that many people even just download it to try the game after having seen it on Steam.

10
Modding / Re: Any active modders?
« on: December 03, 2019, 11:21:55 AM »
I think that's great that you are delving into memory editing of URW.

We need to think what are the main limitations of the current system and what memory editing can do.

One current limitation is that not all object properties can be set in the txt files. I'm thinking of
  • Accuracy
  • Works as a ski stick
  • Works as a beater
And many other hidden properties.

Ingredient matching is based on names or object property inheritance. If you inherit from "Club", your object will match the "Beater" ingredient; or if you inherit from "Northern spear" you will be able to use the object as a ski stick.

Would be nice to have direct control of these hidden properties, and even define new ones, so that we are not limited to name matching.

A concrete example would need having a [TAG:property1] syntax, to assign to a object, and then being able to require such type of ingredient with the {[TAG:property1]}. Much more diversified and streamlined recipes.
But I'm not sure if this would really be feasible only with memory editing

Some other limitations are intrinsic to the recipe system. For example, you can make only one type of object at a time (no multiple products from a single recipe).

Another limitation is that we can't add new buildings.

Finally, if memory editing really enables more modding possibilities, they would be limited only to the windows platform, right?

Anyway, I'm currently working on a mod, which is an evolution of caethan self sufficiency mod.
https://github.com/pietralbi/urw-extended-recipes

I'm not really a pixel artist, so I'm ignoring all the custom sprites for now and just focusing on the recipes themselves. I was planning at the end to slowly and painfully do the artwork with gimp, but if you can make the icons instead it would be great!!!

11
Mod Releases / Re: Looking up vanilla item prices and weights
« on: November 22, 2019, 11:14:05 AM »
By the way, in the table I see no entries for attack/defense or accuracy. Are they stored somewhere else?

Attack/defence are determined by the blunt, edge, point, tear, squeeze, and warmth values as far as I know.
Melee accuracy I couldn't find, but ranged accuracy has its own value not currently described in the table, but it is in the data struct the table is based off of.

I may post my own findings/documentation later, as this table doesn't fully describe all the data, but has most.

the final value of the item (not base value) is also affected by quality, which is described here: https://www.unrealworld.fi/wiki/index.php?title=Quality

Actually every melee weapon has an attack/defense bonus, which is represented by a number from 0 to 6. You can check in-game by examining the weapon in your inventory, and even mod the values:
https://www.unrealworld.fi/wiki/index.php?title=Weapons

On the other hand, the accuracy parameter should be only for bows and crossbows, but it's hidden in-game and cannot be modded.

12
Mod Releases / Re: Looking up vanilla item prices and weights
« on: November 22, 2019, 01:32:03 AM »
By the way, in the table I see no entries for attack/defense or accuracy. Are they stored somewhere else?

13
Modding / "A place for drying" as {[NEARBY_TILE:]} option
« on: November 21, 2019, 03:38:04 PM »
Would be nice to have an option for the {[NEARBY_TILE]} syntax that works as the "A place for drying" in the "Dry (for preservation)" cookery recipe.
Something like:
{[NEARBY_TILE:Hanging place]}

since it requires either a fence, or wall, or anything where to hang things

14
Mod Releases / Re: Looking up vanilla item prices and weights
« on: November 21, 2019, 02:03:38 AM »
And if you don't want to run it yourself, here's the full table dump from CONSTANT.OBJ: 

https://docs.google.com/spreadsheets/d/1l3JpN3IcZu3h82NXmfZ8F3hl1vYbAiQwFngQ1rB5dDs/edit#gid=0

Just wanted to give a huge thanks for this, been manually mapping this struct in cheat engine, this should help tremendously. I'd also like to point out, that Weight1 is actually the data value for deterioration, despite it being the same value as Weight2. When the item deteriorates, it loses a small chunk of Weight1's value.

That's great news! I'm been working on my own mod and I've been inferring prices and weights directly in-game, this would speed up a lot.  Please keep us posted with your progress.

I would also like to point out that the Value in the table is *not* the value in squirrel hides, which is the standard unit used in the recipes with the [PRICE:] tag.
It is instead 8 times the price in squirrel hides. Here is what I've inferred in-game:
1 wooden bowl : 0.4 squirrel hides
1 broad knife : 17 squirrel hides

In fact, in the table:
wooden bowl Value : 3.2 = 0.4 * 8
broad knife Value: 136 = 17 * 8

15
Suggestions / [naming: last word] functionality extension
« on: November 18, 2019, 10:42:52 AM »
Talking about modding crafting recipes

Currently, the [naming: ] tag, together with [name: %s] tag, offers the possibility for greater customisation of recipes and item names.

However, only two options are currently available:
[naming:last word] - %s will get value of the last word of selected material/item name
[naming:original]  - %s will get value of original and complete selected material/item name

I propose a small extension that could greatly improve customisation and simplify many mod recipes I've seen.

In addition to "last word",  it should be possible to use integer values:
"1" :  get the value of the first word
"2" : get the value of the second word
"n" : get the value of the nth word

In a similar fashion,  as it happens in python lists:
"-1" : get the value of the last word (synonim with "last word")
"-2" : get the value of the second last word
"-n" : get the value of the nth last word

If the number exceeds the word count, it should reduce to the last word in the former, positive case and the first word in the latter, negative case.

It should be just a small modification to implement, but the advantages are sizeable. I hope you (Sami) can consider this

Pages: [1] 2 3
anything