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_ParametersIn 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:
.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:
.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:
.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:
.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:
[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.