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 - Night

Pages: 1 2 3 [4] 5 6 ... 13
46
Mod Releases / Re: [3.63] URW Mod Extender v0.0.1
« on: February 15, 2021, 06:44:18 PM »
Reserved

47
Mod Releases / [3.63] URW Mod Extender v0.0.3
« on: February 15, 2021, 06:43:53 PM »
[3.63] URW Mod Extender v0.0.3
(UnReal World Mod Extender)

This project is aimed at extending the capabilities of the current modding system and adding additional functionality to the game to provide players and mod makers with a much broader range of content than currently available. The scope of this project is quite large, with a variety of different byproducts resulting from its completion including QoL improvements to general gameplay, extended recipe syntax, events with scriptable conditions/actions, fully customizable hotkeys with assignable functionality, extended menudef_ handling, extended read/write of game data (player, npcs, items, world data), a lightweight C# wrapper for URW data management, and much much more as this develops.

In its current state, the project will start with an initial beta testing/bug fixing phase, whilst constructing the base minimum functionality to consider the project stable, useful, and fun for the player base to use, with little to no irritable drawbacks.

The initial beta release will be most appealing to current mod-makers who wish to extend their recipe's functionality and bypass the menudef_ limit, as there are no mods that currently make use of this(yet) there will not be many(if any) extended mods until they are made/tested/released as an extended mod.

Installation, running, exiting
Spoiler: show
Extract contents of the zip folder anywhere, but for easier management I suggest extracting it to your UnRealWorld folder. (mine is C:\Program Files (x86)\Steam\steamapps\common\UnRealWorld). After you extract URWME.exe and URWME_Files somewhere (must both be in the same folder), running URWME.exe will handle the rest. If the game is already running, it will use that instance of the game as its target process, if the game isn't already running, it will attempt to run the game in this order:
  • Current directory - runs urw.exe from the folder you ran URWME.exe in
  • Steam directory - Checks to see if you have steam installed via registry keys, then attempts to run the game from your default steam directory with the default game path
  • Steam shortcut - Attempts to run the game via URW's steam URL (steam://rungameid/351700)
Keep this in mind if you're using old game versions/non-steam directories. (designating path from URWME_Config.txt is planned for an upcoming patch)

To exit the program, either close UnReal World or the application itself through the main form. diy_ModExtender.txt and menudef_ModExtender.txt should automatically be deleted when this happens, but incase they don't, it is recommended to manually delete them.


Assigning and using extended menudefs
Spoiler: show
Extended menus can be assigned inside of the URWME_Config.txt file; to do this, simply open the file in notepad and insert the what you would normally put in a Menudef_ file, under [Menuhotkeys] on a new line.

The only additional bit you will need to add is the key / key combination you would like to use to activate this particular menus when using the Menu Manager. Below is an example of how this section of the config will look:

When accessed in game via the Menu manager, (~ key by default) you will be presented with a UI showing you the menudefs with their respective hotkeys, pressing the key/keys for the desired menu executes the following process:

  • key pressed ->
  • assigned keys menudef_ is written to UnReal World's folder as menudef_ModExtender.txt ->
  • mod extender macros the appropriate keys to reach the menu (shift+m+z) ->
  • menu manager is minimized and the menu is now open with affiliated diy_ recipes.

Here is what the UI looks like with the above configuration:

Make sure the menu manager is focused/active when you're attempting to access a menu. (by default, it opens focused)

Important Idiosyncrasies:
Any menu you add as an extended menudef to the config, should not be defined in a regular menudef_, and should not use  hotkeys used by regular menudef_ menus, as this will conflict when menudef_ModExtender.txt is written to. Any custom menudef_ defined within the config file may ignore this rule and use the same key. (-Z- was used in my example). Defining recipes for the menu may be done in either regular diy_ files or custom ext_ files.


Defining ext files & using new syntax
Spoiler: show
ext_ files work exactly like diy_ files, except they're processed into a master diy_ModExtender.txt file whenever the user is about to use the crafting menu. When the crafting menu is accessed, a function is triggered that reads each ext_ file defined within UnReal World's folder, the recipes are organized into a dictionary of submenu's and their respective recipes. each submenu is iterated through and each recipe within that submenu is read line by line checking for extended functions. When a line contains one of these extended functions, that particular function is executed and returns a true or false value, depending on whether the conditions of that functions were met, or not, which in turn determines if the recipe has all the requirements needed to use it. Multiple functions can exist within a single recipe, creating a much richer crafting system with more complex concepts and ideas emerging with each new function I am able to add and implement.

Here is an example of what an ext_file.txt looks like:




Here is the resulting diy_ModExtender.txt file after the functions have been executed and handled:



The current functions implemented consist of the following: (green fully working, yellow WIP)

  • IsNearNPC(string Name); - returns true if an NPC within 1 square has the designated text within their name
  • RecipeKnown(string Name); - returns true if an item with the designated name has been set as a 'recipe' via the [SKILL:recipe] tag (used to restrict an item if a recipe has not been learned yet)
  • RecipeUnknown(string Name); - returns true if an item with the designated name is not found/has not been set to a 'recipe' using the [SKILL:recipe] tag (used to 'learn' a recipe)
  • HideWhenFalse(); - removes the recipe from the crafting menu if any custom syntax is false, otherwise the recipe is shown.
  • {[TILE:FunctionName]} +'Descriptor' - any [TILE:] placed right after a function with the function name as the tile will act as a placeholder for the crafting system to use. This line gets replaced by a passing or failing requirement depending on its relative functions success or failure. Additionally acts as a descriptor for the function
  • [SKILL:recipe] - designates this item as a recipe, when a recipe is found in the players inventory or on the ground it is automatically removed from the game. Using RecipeUnknown(name) with the recipe's name as the parameter will hide the recipe once it has been crafted/learned for the first time when used in conjunction with HideWhenFalse(). Currently I have not implemented an 'unlearn' function yet, but it is a possibility if requested/needed.
  • PlayerIs(string variable, string comparator, string value); - returns true if the variable compared using a specified comparator with the value is true. Example: PlayerIs(Fatigue,>=,20) (partial implementation/untested)

Unimplemented but planned functions include:
  • WorldIs(string variable, string comparator, string value); - same as PlayerIs(), but for world data.
  • LastInputIs(string variable, string comparator, string value); - same as PlayerIs(), but for custom player input.

Important Idiosyncrasies:
All functions and data are case-sensitive, functions must end with );. Parameters are separated with a , with no spaces IE: (param1,param2,param3) spaces will be considered part of the parameter if you use them (which may be necessary, in some cases). Most functions require a [TILE:FunctionName] tag to be used on the next line as a placeholder ingredient, with the exception of a few special cases (so far, just HideWhenFalse();)


I have attached an example mod to be used with the Mod Extender for demonstration/learning purposes, includes IsNearNPC, RecipeKnown, RecipeUnknown, and [SKILL:recipe] usage. If you have any questions please post below.

Version History:
  • v0.0.3 3/10/21
    - Added functions: RecipeKnown(), RecipeUnknown(), [SKILL:recipe]
    - Automatic removal of items marked as a recipe from ground and inventory.
    - Automatically move files from Images\truetile to URW's truetile folder (does not overwrite)
  • v0.0.2 2/~/21 - Improved UI, improved game detection/start, organized folders/files
  • v0.0.1 2/15/21 - Initial beta release

Please report any bugs to me via this thread, my PMs, or contact me directly on steam:
https://steamcommunity.com/id/Nightipoo/

Download attached to thread.

Credits:
   Night - Creator/Programming.
   Jiggie - Reviewing code.
   Unrealworld.fi/forums - Multiple ideas from multiple forum users.
   Enormous Elk - Unreal world.

Requires Microsoft .NET Version 4.6 or later. (Usually already installed)

48
Solved'n'fixed bug reports / [Adjusted] Window size/location set to 0
« on: February 15, 2021, 11:38:40 AM »
Had a small power outage/surge tonight from the weather while I was running the game and my PC turned off, when I started the game back up the window size/position was set to what seemed to be 0,0,0,0. Minor inconvenience/annoyance, was able to right-click > window size/location to restore it. Unsure if this occurs when powering off regularly (holding power button, or whatever) or is a one time occurrence.

49
Modding / Re: Adding Custom Music?
« on: February 06, 2021, 01:41:49 PM »
I suppose @Karmatose you mean music played when different game screens are active (the ones where music plays by design, like rituals screen) or events happen?

As of first case, I see an idea of a some audio replacer that watches what game screen is active at the moment and replaces default audio files with ones from user-selected pool when it's possible. Say, each time you're back to the wilderness map or zoom in/out, the program overwrites default audio/ritual.ogg with one of third-party audio replacer/audio/random_ritual_%number%.ogg, so the next time you hit F4, you hear different theme.

As of event-related music, I guess it's possible for the same audio replacer to watch msglog.txt (afaik the game updates it in real-time) for specific lines (like start of a battle), and when one of that lines appears, to play corresponding theme (however it will probably require extra programming effort to avoid conflicts with the first case).

Unfortunately, I'm waaay far from being skilled enough to code something like this by myself. But if someone could write this piece of software, that would be sure awesome. @Night what do you think?

I am implementing an event system in my current project, which will allow for such things. I hadn't thought of using msglog.txt though, so that's a nice idea I'll be looking into.

Also probably possible to replace sounds, may or may not be necessary.


50
Mod Releases / Re: [Tool] Character Designer v1.1.0
« on: February 05, 2021, 10:43:49 PM »
I cant seem to get this to work on Linux.

The error says:

Invalid url: '/home/kgrim/.steam/steam/steamapps/common/UnrealWorld/URWCharacterDesigner/URWCharacterDesigner.exe' given, exiting

No ':' in the uri

I don't know what it means or how to fix it.

Currently not compatible with Linux. @paulkorotoon Suggested using monodevelop to make my projects cross-compatible, which I may end up using later. Sorry for the inconvenience. Alternatively, this could be converted into a website/page.

51
Mod Releases / Re: [3.63] URWSSSelector v1.0.1
« on: February 05, 2021, 02:42:55 AM »
I took a look at it briefly after reading your post. Seems like it would work, but not something I want to invest a serious amount of time in currently, as I'd have to translate a lot of my work/learn the language before getting a decent foundation built. It's a good idea though for compatibility sake.

Is the mod written in C#? As far as I recall, there's MonoDevelop that is cross-platform, just like Lazarus, but is exactly for C#. Never used it myself, though, (got zero knowledge of C*, hehe), so can't say for sure is it good IDE or not.

Yes its written in C#, I'll look into the link you posted.

52
Mod Releases / Re: [Tool] Character Designer v1.1.0
« on: February 05, 2021, 02:34:39 AM »
Hi there!

Is sprites server down? I keep getting an error when trying to update. Also, is the mod still being developed?

Yes, I need to update it. The fandom where the images were hosted got disabled for some unknown reason.

53
Modding / Re: Foreign traders’ merchandise?
« on: February 03, 2021, 07:48:56 AM »
Nice idea. I'll experiment and let you know my results when I do. I suspect it's probably possible via memory, which would make a nice addition to my current project.

54
Modding / Re: Adding Custom Music?
« on: February 03, 2021, 04:02:10 AM »
I have this planned as a feature in my current project. My question is, when do you want sounds/music to be played? looped? I have many ways of doing it, so I'm open to ideas people will actually use contrary to just my own thoughts.
@Karmatose , @ConnorA

55
Off-topic / GME stock & government response
« on: January 29, 2021, 03:59:26 AM »
Just became aware of this recently. Some crazy stuff going on with GME stock and responses from google, the government, etc.
https://www.reddit.com/r/wallstreetbets/

Can scroll through to read more, I assume it will be trending for quite some time.
I've read multiple reports of them even selling peoples stocks without their consent.

56
Off-topic / Re: Ancient Savo : A new Enormous Elk game in the making
« on: January 06, 2021, 06:24:02 PM »
Lot's of potential here, looking forward to seeing it progress. I can see the current design evolving several different ways, so it'll be interesting to see how you go about it :). Even a choice-based story line (or many) could work here and perform well.

57
Off-topic / Re: Happy new year!
« on: January 01, 2021, 09:08:59 AM »
F*** 2020!!! wooo!!!!! 2021!!! Party!!!!

58
Not bugs / Re: Portrait Limit?
« on: December 30, 2020, 03:13:59 AM »
It's alright...I weeded out a lot of the images I like less, so I'm now below the cap. Would still like information on whether raising or removing this cap is possible.

It's possible to work around the cap with modding by inserting the portrait paths into the data manually. I'll write more information / post about it later if/when I get around to it; custom portraits have been requested previously so I looked into it a bit last night, coincidently you post about the limit the next day lol, so this post has been somewhat helpful.

Just to clarify, memory modding, not official modding syntax.

59
Mod Releases / Re: [3.63] URWSSSelector v1.0.1
« on: December 14, 2020, 02:35:43 PM »
~Update

v1.0.2 -
  • Added search modes.
  • Starting location tile information and selected mode now displayed in title bar.
  • Some performance upgrades.

Left v1.0.1 attached just incase people prefer the minimal version.

Just a quick one to say thanks for the tool and the source code & freely sharing your knowledge.

Did you consider using Lazarus/FreePascal for your utilities? That would be write-once, compile & use everywhere (win+lin+mac).

I took a look at it briefly after reading your post. Seems like it would work, but not something I want to invest a serious amount of time in currently, as I'd have to translate a lot of my work/learn the language before getting a decent foundation built. It's a good idea though for compatibility sake.

60
Modding / Re: URW Modding Discord
« on: December 09, 2020, 12:59:52 PM »
~Bump
we're still here

Wanted to invite a few of you who have contributed to / frequent the modding section.
@caethan @Galgana @Buoidda @Ezezaguna @Jaredonian @Bedlam @koteko @Roheline @Dr.Hossa @Frostbit @JP_Finn @Sloomingbla @Teellox @Ubie @paulkorotoon @Bert Preast @trowftd

Anyone is of course, welcome to join ^^.

Pages: 1 2 3 [4] 5 6 ... 13