Skip to content

Releases: Nefaro/gnoll

Gnoll v1.14.2(c) - Lua Integration + New Mod (Lua Based)

20 Jan 01:56
Compare
Choose a tag to compare

This release contains quite a bit of changes. Mostly continuation of Lua integration, however, this time not a systemic one. Instead I tried to implement a mod request and as such I integrated the parts that were required by the mod. This means, the Lua integration now exposes some entities, some UI stuff, some helpful utilities and some more stuff, but is far from complete. I hope one day I am able to give it a systemic approach.

Other than that, the release includes the usual smaller changes, cleanups, adjustments etc.

In the coming days I will update the wiki with the new Lua additions as well.

Also, you can visit the Steam community forums, where I'll post some screenshots as well

Edit (1.14.2a): There was an issue with SeasonalChange and GoG version. Because I'm lazy, reusing the current thread and uploading a new package: 1.14.2a
Edit (1.14.2b): So... I managed to fix the GoG version and break the Steam installation. Still, I'm lazy and just reusing this release to put up a new version: 1.14.2b
Edit (1.14.2c): Windows Defender triggered with a trojan warning "Trojan:Script/Wacatac.B!ml" on "1.14.2b" and only on this version. I deleted it from GitHub and purged it from my system. Ran a system updated (I was up to date), cleaned the project and did a full rebuild. This time no triggering. I'm not sure what happened. As far as I know and as far as windows defender is concerned, I don't have any malware on my PC. Again, if you have the knowledge and skill, you should review and build Gnoll yourself. This is the safest way. Otherwise you have to trust me and this kind of things can happen.

Gnoll Patch 1.14.2

  • No changes

Gnoll ModLoader 1.14.2

  • Include Runtime environment in the logs for easier debugging
  • Refactoring the Lua Proxy namespace and folder structure
  • Implemented a selection of new Lua bindings
    • Additionally a few new global tables which contain helpful functionality usable on the Lua side
  • Bound new events
    • OnGuiLoaded - Triggered, when the UI has ended loading. At this time, the UI can be manipulated.
    • AddPageToKingdomMenu - Specialized event for adding new pages to the Kingdom menu
    • OnJobCompleted - Triggered, when a Job has been completed
  • Lua Loggers are now named after the Mod that's logging. Easier to track who said what
  • In-game mods menu was updated to reflect that some mods are Lua mods
    • Lua mods are prefixed with "(L)" and require "LuaSupport" mod to be enabled in order to work

Gnoll Mods 1.14.2

  • Changes in SeasonalChange
    • Refactored the naming scheme of the seasonal sprites file name
      • The mod now expects the sprite files to be segmented into directories named after the season
      • The file itself should retain the original name
    • Added functionality to load seasonal sprites from Steam Workshop mods
      • The SeasonlChange checks if there is a "Gnoll" directory in the root of the Workshop mod
      • If the "Gnoll" directory exists it tries to load the sprites from similar location as the built-in ones
      • Example: "<workshop_id>\Gnoll\SeasonalChange\Data\winter\agriculture.png"
    • If the seasonal sprites for the given season cannot be found, the last loaded will be used
  • New mod : RaidingParty
    • This mod is more-or-less a Lua mod. Some utility or helpful components were implemented on C# side, but bulk of it runs in Lua
    • Adds an option to send a Squad to raid an enemy or a friendly faction
      • There is a new tab "(G) Raiding" in the "Kingdom" main menu
      • The Squad follows the same logic as sending a trade envoy to a friendly faction
      • The Squad is "missing" for as long as it takes to reach the faction and to get back
      • When getting back a selection of items is dropped. The selection depends on the stats of the squad and on the faction that was visited

Gnoll Installer v1.14.2

  • Support for new version

Gnoll v1.14.1 - Linux/Wine Maintenance Release

08 Jan 18:39
Compare
Choose a tag to compare

A small release that removes an issue with running Gnoll modded Gnomoria on Linux and Wine.
There was an issue with the Lua integration library (MoonSharp) which caused Mono on Linux to freak out and throw an error. I couldn't solve the issue directly, however, MoonSharp provides several binaries depending on the target platform and thankfully one of those binaries work on Windows as well as on Linux.

This is the only change for this release, this bothered me for over a year and now it's fixed (or at least worked around).

Gnoll Patch 1.14.1

  • No changes

Gnoll ModLoader 1.14.1

  • Replaced the MoonShap binary (MoonSharp.Interpreter.dll)
    • It was targeting platform "net40-client"
    • Was replaced with "portable" target: "portable-net4+sl5+wp8+win8"
    • Replaced script loader with local implementation, since the filesystem based loader was not supported by the "portable" binary by default
  • Minor refactoring
    • Lua sub-system will not be initialized if the Lua support is disabled
  • Changed the default Debug console dimensions

Gnoll Mods 1.14.1

  • No changes

Gnoll Installer v1.14.1

  • Support for new version

Gnoll Release v1.14.0 - Lua Integration

29 Aug 21:42
Compare
Choose a tag to compare

This release is a bit bigger this time and focuses on one topic, as the title says: Gnoll now introduces Lua integration into modded Gnomoria. As of right now it offers pretty much the same capabilities as the native .xml, except for anything related to sprites. However, different from the .xml variant, Lua allows to change the value while the game is running.
There is a short guide in the wiki: Lua Integration
Also there are some examples among the mods: ExpLuaIntegration ModInit.lua and LuaSupport/GnollLuaValidationScript.lua.

This is the first integration pass, as hinted at, currently we can only modify the initial data (or the definitions) of the game. Since it's quite a bit of work to integrate the code and I am running out of time (for this development cycle that is) I decided to release whatever I have.
There is still a lot to do, including introducing more events that can be hooked at from Lua and adding support for in-game objects and entities during the gameplay.

The integration is provided by Moonsharp

Note: By default Lua support is disabled. To enable Lua support, enable the aptly named "LuaSupport" mod within the game. If you also enable the example mod ExpLuaIntegration, you will have the example Lua code randomise the value of different wood materials.

Gnoll Patch 1.14

  • Added a few hooks on strategic location to intercept the moments, where the game has loaded all the data and is ready to play. As in, the last moment to do things before the player gets the control.

Gnoll ModLoader for patch 1.14

  • Cleaned up the versioning, removed the "G" prefix. It had a meaning a long time ago, but not anymore. Additionally now the whole Gnoll version fits into the version lable on the main page
  • Introduced Lua Integration support, it's baked into the mod loader and can be enabled/disabled by enabling/disabling "LuaSupport" mod.
  • Added functionality to save and load Gnoll specific savegame companion file. Previously I "hacked" the Gnomoria save games to add few pieces of data (vanilla Gnomoria just ignored the info, so this didn't break anything), but with Lua introduction needed a more flexible/powerful way to save (more) data. The Gnoll save file will be besides the proper save file at the Gnomoria userdata folder: ie "/My Games/Gnomoria/Gnoll/Worlds"
  • Unified the logging facility, Gnoll modloader, mods and Lua can now use their own logger and it all will end up in the same log, currently only the debug console.

Gnoll Mods for patch 1.14

  • LuaSupport - Mod for toggling Lua integration on and off. Disabled by default. Also includes some Lua enum-like definitions that can be used in Lua scripts. Also includes GnollLuaValidationScript.lua, which validates the integration by going through almost all the mappings and making sure the mappings are correct and work
  • ExpLuaIntegration - A mod to showcase Lua integration. Disabled by default. When enabled, on a new game start it will randomize the value of "wood" material. By default the value is 1, the script randomizes the value between 1~10, making some wood more valuable. Additionally showcases how to use the Lua integration, to access various stuff and to save/load the Gnoll companion savefile.

Gnoll Installer v1.14

  • Support for new version and an additionaly dependency (Moonsharp)

Gnoll (GoG) Bugfix Release v1.13.1

12 Feb 19:43
Compare
Choose a tag to compare

There was a slight problem with the GoG patch, I had it constructed in a bad way. Namely the GoG patch was actually Steam patch, just renamed. Sufficient to say, that the 2 patches are different, calling the Steam API from the GoG specific .exe does not work. This caused a crash.

Unfortunately, this was not noticed by me, but someone (thank you for letting me know, btw) trying to play the Gnoll modded game via the GoG version. Since I have the Steam version and I do changes relying on the Steam version, I didn't test the GoG patch enough (or... not at all). I will try to avoid that in the future.

Gnoll Patch G1.13.1 (for GoG only)

  • A new patch on the 13 branch. This is for GoG only and I yanked the older patch. So if you are playing via GoG then the original v13 patch does not work and you should replace it with the 1.13.1 patch

Gnoll ModLoader for patch G1.13.1

  • Added support for the bugfix version string to the Mod Loader "About" page. Note: The main page shows only the major version, since it has a length restriction

Gnoll Mods for patch G1.13.1

  • No changes

Gnoll Installer v1.13.1

  • Support for patch 1.13.1. Note: Steam patch version is still 1.13 while the GoG version is 1.13.1
  • Refactored the location where the Installer has the patch version.

Gnoll Release v1.13.0

10 Jan 14:19
Compare
Choose a tag to compare

This time a bit of refactoring and exploring fixes for some annoyances. While not every exploration path was successful, I think I have fixed a crash when alt-tabbing on fullscreen.
Additionally for a long time I wanted to add an option to disable/enable mods from within the game, this feature is now added. This leaves the door open to add "experimental" mods, that under normal situations might break the game (as in the logic and flow, not crash ... ). Now it's a no worry since the mods can be disabled.

Note: Since the structure of the mods got overhauled, you need to do a full uninstall first to get rid of the old stuff. This can be done via the Installer itself. After that, install patch and copy mods and enjoy.

Gnoll Patch G1.13

  • A new binary patch, made "protected" methods "public". Don't really like to add anything new to binary side, but this was required for the alt-tab fix.

Gnoll ModLoader for patch G1.13

  • Support for patch 13, making "protected" methods "public" so they can be accessed in the hooks and mods.
  • Refactored life-cycle handling for mods. Mods can now be enabled/disabled from the in-game menu. Some mods require game restart for full effect. The mod settings are saved in a file, so the setup survives a restart.
  • Refactored patching. Mods can now provide their own patch, overriding the mod-loader patcher. Gives a bit more flexibility to add specialized patches (ie take a look at the new FixFullscreenAltTab mod for example), but then the patcher looses the centralized governance. Combined with the new life-cycle management, the patches are applied only when the mod is "enabled" during loading, which means the patches can be applied only once and to remove them, the mod needs to be disabled, which in effect avoids loading and applying the patch.
  • The main window version label now displays Gnoll version as well, letting you know, that Gnoll is installed indeed.
  • Code cleanup here and there

Gnoll Mods for patch G1.13

  • Overall update for all mods to support the new life-cycle structure.
  • Added a new mod: FixFullscreenAltTab
    • This one tries to fix the crashes that occur when alt-tabbing in/out of the game at fullscreen. If you don't use fullscreen, then you can disable this mod.

Gnoll Installer v1.13

  • Support for patch 13
  • Fixing an issue where the Installer duplicated "copy dependency" action on every button press. Not really critical, since copying the dependencies 1 or 3 times still results the same outcome, but still
  • A bit of code cleanup and logging cleanup

Gnoll Maintenance Release v1.12.0

31 Jul 21:21
Compare
Choose a tag to compare

A bit of cleaning up and a bit of fixing things. Also experimented with overriding values for internal settings (ie the population calculation), but this is a subject for later days.

Gnoll Patch G1.12

  • Modified hook: Save Game hook was attached to a forked (threaded) method . This caused some trouble with race conditions and stuff didn't work in predictable ways. Now the hook is at the right location.
  • Added hook: After Save Game has finished.

Gnoll ModLoader for patch G1.12

  • Support for patch 12

Gnoll Mods for patch G1.12

  • Bugfixes for HigherZoom mod
    • I had some issues with saving the zoom in a way where the vanilla game could not handle the values. This is now fixed. This means, if the save game is using a zoom that is not supported with the vanilla game, the save file values will be defused and safe zoom levels are used for saving. This ensures that the save file is usable also without Gnoll
  • Bugfixes and changes for Challenges mod
    • The Challenges score table showed scores from different challenges on the same table. A table cleanup before switching the view was needed
    • Added 0.8 as an additional zoom level. All the added levels are: 0.25, 0.5, 0.8 (zoom out) and the original 1.0, 2.0, 4.0 (zoom in).
  • Bugfixes for MarketStallSellFilters mod
    • The game crashed if a Market Stall was opened without an active trader. This is now fixed
    • The added UI elements did not respect the window resizing, staying in the same location regardless of the window location. This is now fixed, the UI elements now move and resize according to the window.

Gnoll Installer v1.12

  • Support for patch 12
  • Unified the manual patch files. Since I started using Harmony for runtime patching, the manual patch has not changed. Previously there was copy of the patch file for every Gnoll version. Now only one patch file is described and included. A bit of cleanup.

Wiki update: Installation on Linux

  • Now already some time ago (in April) added a chapter on how to install Gnoll on (Arch) Linux (many thanks to aanjkyks for the guide). I haven't tried it out myself. Also, looking at the instructions, I suspect that they might work on other flavors of *Nixes as well.

Gnoll Bugfix Release v1.11.0

09 Mar 18:47
Compare
Choose a tag to compare

This time nothing new, just a bug fix. There was a bug in the HigherZoom mod. In order to fix that I had to make a new patch, hence a new version of the whole stew.

Gnoll Patch G1.11

  • New hook: Before game is saved
  • New hook: After savegame is loaded

Gnoll ModLoader for patch G1.11

  • Support for patch 11

Gnoll Mods for patch G1.11

  • Bugfix for HigherZoom mod
    • The game requested for the added zoom level before the mod was loaded and this crashed the game.
    • This issue is now fixed. Additionally fixed an issue, where the savegame (with the additional zoom level) would not work with vanilla Gnomoria.

Gnoll Installer v1.11

  • Support for patch 11

Gnoll Release v1.10.0

13 Feb 14:22
Compare
Choose a tag to compare

This release introduces Lib.Harmony for patching. Previously every patch was handcrafted and that was as painful as it sounds: take the binary, decompile, find the interesting bits, craft a patch, compile, generate diff patch and don't make any mistake on any of those steps.
Harmony, on the other hand, allows us to define the patches in the C# code itself. Quite a few steps easier.

Note: I suggest you first do an "Uninstall" before applying the new patches and then copy the mods. Nothing will break, if you don't, just make sure you apply the new patch G1.10.

Gnoll Patch G1.10

  • Introducing new patching mechanism: Harmony
  • If all goes well, then the plan is to replace most of the hand-crafted patches with Harmony (time permitting), but there is no rush
  • Injecting 2 new hooks:
    • Before In-Game HUD is created
    • After Game engine is initialized and game settings have been loaded
  • Everything is backwards compatible

Gnoll ModLoader for patch G1.10

  • Support for Lib.Harmony and Runtime patching
  • Patches are supplied before mods (so that mods can use the changes as before)
  • Gnoll Debug state is now tied into the Game's debug state: If Gnomoria Debug is enabled then Gnoll will show it's own console window with additional information about what's going on.
  • Gnoll Mods for patch G1.10

  • New mod for testing out patch 10: HigherZoom
    • Adds 2 more levels for zooming out: bad for gaming (FPS eater), good for screenshots

Gnoll Installer v1.10.0

  • Support for Patch 10
  • Support for Harmony
  • Fixed and improved detection of old standalone .exes
    • If you have an older standalone, you can uninstall first before installing new... or keep the old and also install the new.

Gnoll Release v1.9.3

01 Feb 20:16
Compare
Choose a tag to compare

Yes, I am messing around with the versioning. Hopefully henceforth the versions will be consistent.

Gnoll Installer v1.9.3

We had a problem where Windows marked the included mods as "troublesome" causing Gnoll modified .exe to not run. This has been now fixed or worked around, depending on the view.

  • The Installer is now responsible for copying the mods to the right location. The existing Gnoll mods folder will be backed up, just in case.
  • The Installer now has an "Uninstall" button, removing the mods directory, the ModLoader and uninstalling the patch.

Gnoll Patch v1.9

  • No changes

Gnoll Mods for patch G1.9

  • No changes

Gnoll ModLoader for patch G1.9

  • No changes

Full Release Version 1.1

28 Dec 18:32
Compare
Choose a tag to compare

First (working) release of Gnoll (v1.1)

So... don't do releases after midnight. The last release was almost fine, except it was missing a crucial piece: the Mod Loader itself. That means the installer patched the game, added the hooks, but the hooks had nothing behind them... causing a CTD (crash to desktop).

I'm really sorry about that.

Gnoll Installer v1.1 (N1.1)

  • Now includes Gnoll Mod Loader (the part that actually loads the mods in-game).
  • The Mod Loader is installed whenever the regular or stand-alone patch is applied.

Gnoll Patch v1.9 (G1.9)

  • 9th increment of the patch. This is the hooks, that will be used by Gnoll to load modded code.
  • There are patches for Steam and GoG version of the game

Gnoll Mods for patch G1.9

  • All (15) mods currently available in the repository are included
  • Currently the Installer doesn't deal with the mods yet, you need to copy them into right location yourself.