Shadows of Forbidden Gods

Shadows of Forbidden Gods

Community Library
215 Comments
ilikegoodfood  [author] 31 Jul @ 4:31am 
Version 2.6.10 (Dark Empire & Theocracy Description Tweaks):
- (Base Game & DLC) Updated the descriptions of the Dark Empire ritual and the Theocracy power to make it clear that un-aligned (low on shadow or low on faith respectively) rulers of human cities will immediately rebel.
ilikegoodfood  [author] 18 Jul @ 3:54pm 
Version 2.6.09 (Broken Maker Victory Messages):
- (Base Game & DLC) The Deathstone item now deletes itself when its holder dies and the player gains power.
- - This prevents an infinite energy loop that could be achieved by having an agent higher up in the turn order initiiate theft from a ruler that a second later agent kills on the same turn, allowing the item to be retrieved from the victim's corpse.
- - Mod developers who implement onDeath effects on items, please consider that that they are retrievable, and have them self-destruct if neccessary.
- (Base Game & DLC) Added a complete set of unique victory messages for The Broken Maker.
- - Thank you NPC (known on Steam as "oh no", the developer of Covens, Curses, and Curios), and other participating community members.
AshtonAnchors 11 Jul @ 12:21am 
Thanks for the help @ilikegoodfood. I appreciate the help and all the work you do maintaining the community library!
ilikegoodfood  [author] 10 Jul @ 2:20am 
@AshtonAnchors My first recommendation, is to verify your local game files. Right=click on the game in your Steam library and select:
Properties > Installed Files > Verify integrity of game files

This will have Steam verify that all of the game's files, as well of those of any mods, are correct. It will replace any that are not. Hopefully this will get past your download issues.

Failing that, all versions of the Community Library are also available for direct download through GitHub, linked in the description above. The mod folder is in the games folders, which are in your Steam install directory.
You're looking for:
...\Shadows of Forbidden Gods\data\optionalData

You download the mod and unzip it if Steam absolutely won't give it to you.
If you own the DLC and ever play without it, you will also need to copy the mod into:
...\Shadows of Forbidden Gods\BaseGame\data\optionalData
AshtonAnchors 10 Jul @ 12:15am 
Steam keeps giving me a corrupted download error for this mod, and only this mod. The mod does not work, not even showing up on the mod list in game. I've uninstalled and reinstalled the game several times and tested downloads with other mods, and this is the only one that causes the error, which is a shame because it's the most important one. Any ideas for a fix?
ilikegoodfood  [author] 1 Jul @ 2:46am 
Version 2.6.08 (Random God Sort):
- (Base Game & DLC) Implemented option for a random god order in the new game menu.
- - The other god sort options, excluding alphabetise, will still be respected by this system.
- - - This means that you can still have the last played god listed first, or SWWF, and you can have them randomised within base-game god, followed by randomized modded gods, etc.
- - - For true random, disable all the other god-sort options.
ilikegoodfood  [author] 20 Jun @ 1:44am 
Version 2.6.07 (Modded Challenge Subtypes):
- (Base Game & DLC) Fixed a potential divide by 0 error in the Universal Agent AI.
- (Base Game & DLC) The Universal Agent AI's utility calculation for challenges where `valueTimeCost` is true now correctly matches the base game utility calculation (`utility / ((10 + time to reach + time to perform) / 10)`).
- (Base Game & DLC) Universal Agent AI now supports AIChallenges that apply to all subtypes of the specified challenge type, in addition to the type itself.
- - It will always use the AIChallenge for the nearest ancestor of the challenge's type which is defined as supporting subtypes. All more distant ancestor AIChallenges are ignored.
- - Override AIs for UAENs will now try to use subtypes of their vanilla challenge types by default.
ilikegoodfood  [author] 23 May @ 7:44am 
@m0gito In the in-game mod menu, the mods are listed in the order that they are loaded, with the first mod loaded being the top of the list. You can re-order the mods in that list to change their load order, and then relaunch the game.
m0gito 23 May @ 7:09am 
how do i make it so this mod is loaded first?
ilikegoodfood  [author] 14 Apr @ 2:18pm 
Version 2.6.06 (Prophet Trait):
- New mod option: Prophet Trait
- - Default `false`.
- - If enabled, prophets gain a trait that indicates which holy order they are a prophet of.
- The recruitment points tool-tip now states the remaining turns until the next recruitment point.
ilikegoodfood  [author] 6 Apr @ 8:47am 
Version 2.6.05 (Hotfix):
- (Base Game & DLC) Fixed issue where games saved prior to the addition of the Hooks Registry would not have one.
ilikegoodfood  [author] 4 Apr @ 11:11am 
Version 2.6.04 (Attack Hero Fix):
- (DLC) Fixes, for real this time, that the local action to attack an agent could be performed even when the target agent was on a map layer that the settlement's ruler is unaware of.
ilikegoodfood  [author] 3 Apr @ 10:52am 
Version 2.6.03 (Dwarf Army Fix):
- (DLC) The initial dwarven settlements will now only spawn an army if they are a city.
- (DLC) The initial armies spawned for dwarven cities are now registered to the city as existing and beloning to them.
- - Thank you to Kerrr Avon for reporting and finding the issue.
ilikegoodfood  [author] 3 Apr @ 5:19am 
Version 2.6.02 (More Fixes):
- (Base Game & DLC) Modified `Map.processPeople` so that people can be added and removed during processing, including within traits.
- (Base Game & DLC) The seals tooltip now correctly displays the return value of `God.getSealsDesc()`.
- (DLC) Fixed "Collection modified while enumerating" error for dwarven expansion and surface fortresses.
- (DLC) If a human army is spawned from a dwarven outpost (minor settlement), it now correctly uses the dwarven army graphic, instead of the human one.
ilikegoodfood  [author] 2 Apr @ 4:03pm 
Correction for a missing word:
- (DLC) Removed the Attack Hero, Attack Army, and Fund Hero local actions for targets on an inaccessible map layer.
ilikegoodfood  [author] 2 Apr @ 12:07pm 
Version 2.6.01 (Broken Maker Fix):
- (Base Game & DLC) Fixed crash to desktop that occurred when using The Broken Maker's Eternity power.
- (Base Game & DLC) Fixed "modified collection while enumerating" error in the logic for The Broken Maker's sleep cycle.
- (DLC) The Attack Hero, Attack Army, and Fund Hero local actions for targets on an inaccessible map layer.
Padex 2 Apr @ 7:42am 
the Community library is currently causing a couple of issues I noticed:

-Selecting any of the tutorials lets out a nullreference error

-Using the Broken Maker power "eternity" causes the game to crash
ilikegoodfood  [author] 31 Mar @ 11:08am 
Version 2.6.00 (Delegate Support):
This one is almost back-end stuff for modders. See the Change Notes tab for full details.
It does two in things:
- Change how army challenges and tasks are fed to the UI. This breaks compatibility for older mods that use this feature. Please give developers time to update their mods.
- Allows mods to register delegates instead of using a subclass of `CommunityLib.Hooks`. This has two effects:
- - It's slightly more performant, as the Community Library is no longer having to call empty functions for the mods that make the change.
- - Mods that are not dependent on the Community Library can still make use of these features if the Community Library is also enabled.
ilikegoodfood  [author] 30 Mar @ 3:19pm 
Version 2.5.15 (MinionAttack Hooks Fix):
- (Base Game & DLC) Fixed minion attack hooks for the defender agent in agent battles not assigning damage correctly.
ilikegoodfood  [author] 30 Mar @ 12:12pm 
Version 2.5.14 (Branch Safety Update):
- Re-update to ensure that the incorrect branch wasn't released by mistake.
ilikegoodfood  [author] 29 Mar @ 4:45pm 
Version 2.5.13 (Hotfix):
- (DLC) Fixed Key Not Found eexception in modified dwarf spawning logic.
ilikegoodfood  [author] 29 Mar @ 4:44pm 
Version 2.5.12 (Dwarf Fix):
- (DLC) Changed Dwarf spawning logic so that the size of each civilization is tracked separately, and they are prevented from growing beyond 1.1 times their share of the total target dwarven settlement count, even if this means that the total target dwarven settlement count will never be reached.
ilikegoodfood  [author] 27 Mar @ 6:27pm 
Version 2.5.11 (HexGridUtils Fix):
- (Base Game & DLC) Massively refactored `HexGridUtils` class.
- - Improved performance by over 50% (estimated), higher in some cases.
- - Fixed incorrect methods for determining Circles and Circular Rings.

There is a known bug where Circular Ring and Circle do not agree. I will try to address it in a future update.
ZeroTheHero 24 Mar @ 8:24am 
Perhaps too subtly. I tend to skim read. Point now taken.
ilikegoodfood  [author] 24 Mar @ 5:27am 
@ZeroTheHero As I said before, perhaps too subtly, the way the game handles the tutorial makes it impossible for almost all mods to support it. The tutorial should always be performed without mods.
This is not going to change in the future.
ZeroTheHero 24 Mar @ 2:13am 
FYI. Still crashes the Tutorials, So for newcomers disable while doing these.
ilikegoodfood  [author] 23 Mar @ 5:06pm 
Version 2.5.10 (QoL and Mod-Support):
Another one that's too large for a comment, so make sure to check out the Change Notes tab above.

A bare-bones list of highlights, that is in no way compete:
- All Shadow Gain Effects should now show up properly in the Shadow gain breakdown for settlements (hover over the shadow value of a settlement).
- Bugfix in Ghast AI. No more wasted time.
- Wonders are now placed later in map generation.
- `HexGridUtils` class offers indsutry-standard, high performance functions for operating on hex grids.
- - Base game features will be changed to use these in future updates.
- Hooks for Broken Makers Sleep Cycle. Please support him.
ilikegoodfood  [author] 19 Mar @ 5:19pm 
Version 2.5.09 (Shadow Gain Support):
- (Base Game & DLC) Implements new `onSettlementComputesShadowGain` hook and delegate for displaying modded shadow gain effects in the UI.
- - I haven't yet gone through and accounted for all base-game features that do not normally display, such as Ophanaim's Faith.
- (Base Game & DLC) Implemented new "Forced Wonders Don't Count" mod option.
- - Default false.
- - If enabled, wonders with priority 3 (forced) will not count against the target wonder count when spawning wonders.
ilikegoodfood  [author] 19 Mar @ 5:18pm 
@ZeroTheHero I don't think it's just this unfortunately. The game fundamentally generates the world differently for the tutorial map, which breaks many mods.
ZeroTheHero 18 Mar @ 8:19am 
Nothing serious but the Tutorials are broken with this enabled. So need to disable when doing tutorials.
ilikegoodfood  [author] 16 Mar @ 8:07am 
PSA for compatibility breaking update on 31st March at 18:00GMT.
Read the News section above.
ilikegoodfood  [author] 8 Mar @ 4:04am 
Version 2.5.08 (Advanced checkIsWonder):
- (Base Game & DLC) Added an advanced version of `checkIsWonder` and `checkIsNaturalWonder` which output the elements of the location that classify as a wonder for further processing.
- - This is similar to the second overload of `checkKnowsMagic`, which outputs the magic mastery traits for further processing.
ilikegoodfood  [author] 7 Mar @ 9:59am 
Version 2.5.07 (ModJam Jumble):
Another chunky changelog that is too large to fit as a comment. Check the Change Notes tab for full details. Here are the highlights:
- (Base Game & DLC) Human armies should no longer stand idly by while their lands are being razed by undead armies. Please report if this behaviour persists.
- (Base Game & DLC) The button labels for aborting a challenge now read "Confirm New Task" and "Continue Current Challenge" instead. Hopefully this will reduce confusion.
- (Base Game & DLC) `PowerDelayed` now has `WhileDelayed` functions for duration based logic.
- - They are not called on the turn that the delay value reaches 0.
- (Base Game & DLC) Implemented `delegate_IMMOBAILE` for pathfinding system.
- - It is automatically added for units where `getMaxMoves()` returns 0, or lower.
- - It causes all pathfinding attempts including that delegate to fail immediately, preventing standard movement for that unit.
ilikegoodfood  [author] 6 Mar @ 4:34pm 
Version 2.5.06 (PowerDelayed Tick):
- Automatically ticks all instances of `PowerDelayed` in `God.Powers` during the `onTurnStart` hook.
ilikegoodfood  [author] 6 Mar @ 4:00pm 
Version 2.5.05 (Data Structure Modifications):
- Implemented new `PowerDelayed` class that inherits from `Power`.
- - `List<Pair<Location, int>> TargetDelays_Locations` is used to store targeted locations and their turn count to completion.
- - `List<Pair<Unit, int>> TargetDelays_Units` is used to store targeted units and their turn count to completion.
- - `virtual void turnTick` needs to be called each turn. It has a base implementation that iterates over all target delays, decrimenting delays, and calls the corresponding CastDelayed overload when a delay reaches zero.
- - `virtual void CastDelayed(Location location)` and `virtual void CastDelayed(Unit unit)` are used by the turnTick function in order to trigger the effect.

- Implemented new `Pair<T, U>` mutable data class.
- Refactored `PriorityQueue` to use `<TValue, TPriority>` instead of `<TItem, TPriority>`.
- Refactored `ItemPriorityPair` to `ValuePriorityPair`.
- Refactored some internal functions of `OrderedDictionary`
ilikegoodfood  [author] 3 Mar @ 12:10pm 
Version 2.5.04 (Hotfix):
- (Base Game & DLC) Fixed null reference exception when interacting with the "Wonders" collection.
ilikegoodfood  [author] 1 Mar @ 8:41am 
Addendum:
- The amount of the underground that Dwarven Civilizations occupy will be approximately one-third at 1 civilization, up to two-thirds at 6 civilizations.
ilikegoodfood  [author] 1 Mar @ 8:23am 
Version v2.5.03 (Dwarven Civilization Count):
- (DLC) New Mod Options: "Target Dwarven Civilization Count" and "Dynamic Dwarven Civilization Count"
- - 1 and false by default, respectively.
- - The actual count has 10% chance to be lower, or a 25% chance to be higher than you chose.
- - The dynamic option adds an extra to large maps and reduces the count automatically for small maps.
- (Base Game & DLC) Changed the wording of the Alignment holy order tenet description to be clearer.
Kivipää 28 Feb @ 3:59am 
Confirmed. Cheers for the quick fix o/
ilikegoodfood  [author] 28 Feb @ 3:11am 
Version 2.5.02 (Hotfix):
- Added save-updating for the new trade route manager.
ilikegoodfood  [author] 28 Feb @ 3:11am 
@Kivipää Thank you for the bug report. I had forgotten to add the trade manager to the save-update function.
This issue should now be resolved.
Kivipää 28 Feb @ 2:08am 
UnityEngine. Events.InvokableCall 1[T1].Invoke (T1 args0) (at <b18ae20108aa49ccb481b7d86c1fcbd2>:0)
UnityEngine. Events.CachedInvokableCall 1[T]. Invoke (System.Object args) (at <b18ae20108aa49ccb481b7d86c1fcbd2>:0) UnityEngine. Events. UnityEvent. Invoke () (at <b18ae20108aa49c481b7d0c1fcbd2>:0)
EL UnityEngine.UI.Button.Press () (at <9bfae1dbc3ab45afbfa2030a1cfc3a:0)
UnityEngine.UI.Button. OnPointerClick (UnityEngine.EverSystems.PointerEventDat eventData) (at <9bfae1dbc3ab45afbfa204130a1cfc3a>:0) UnityEngine.EventSystems.ExecuteEvents.Execute (UnityEngine.EventSystems. IPointerClickHandler handler, UnityEngine.EventSystems.BaseEventData
eventData) (at <9bfae1dbc3ab45afbfa204130a1cfc3a>:0)
UnityEngine.EventSystems.ExecuteEvents.Execute[T] (UnityEngine. GameObject target UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems. ExecuteEvent+EventFunction'1[T1], functor) (at <9bfae1db33ab45afbfa204130a1cfc3a>:0)
UnityEngine.EventSystems.EventSystem:Update()
Kivipää 28 Feb @ 2:08am 
Your latest update bricked my ongoing game with the following;

NullReferenceException: Object reference not set to an instance of an object
> Community Lib. Harmony Patches.ManagerTrade_checkTradeNetwork TranspilerBody (Assets.Code.ManagerTrade tradeManager) (at <d6ad3e7661d844eba89cdd296d5ba269>:0)
(wrapper dynamic-method) Assets. Code.ManagerTrade.Assets. Code. ManagerTrade.checkTrade Network Patch0(Assets.Code.ManagerTrade) Assets.Code.ManagerTrade.turnTick () (at <87722c3d024842ed81b5e159dacda8fd>:0)
Assets.Code.Map.turnTick () (at <87722c3d024842ed81b5e159dacda8fd>:0)
(wrapper dynamic-method) Assets. Code. World. Assets. Code. World.bEndTurn_Patch0(Assets. Code. World, bool)
ilikegoodfood  [author] 27 Feb @ 2:21pm 
Version 2.5.01 (Trade Route Fixes):
This one is too large for a comment, so go check the Change Notes tab for full details.

The highlights are:
- Completely replaced the trade route logic, again.
- - Now much closer to vanilla.
- - Many fewer trade routes.
- - Runs better.
- New mod option "Dense Trade Routes" (default false).
- - If enabled, adds the cheapest possible trade route to each trade route endpoint to avoid odd-looking gaps.
- Fixed bug in pathfinding system that prevented second passes from working.
- Change signature of the second overload of `onMapGen_PlaceWonders` to `void onMapGen_PlaceWonders(Type t, out bool failedToPlaceWonder)`.
- - This is a mod-breaking change that currently effects 0 mods.
- - Required fro the ModJam.
ilikegoodfood  [author] 15 Feb @ 9:48am 
Version 2.5.00 (Wonder Spawn Rework):
- (Base Game & DLC) Created new `WonderData` class to store data required to manage wonder spawning logic.
- (Base Game & DLC) Changed the signiture of the `OnMapGen_PlacingWonders` hook to return `List<WonderData>` instead of List<Type>.
- (Base Game & DLC) Changed wonder spawning logic so that it can handle the following features:
- - Duplicate wonders.
- - Wonder spawn priorities (standard and high).
- - Forced spawning of specific wonders.
- - Unique wonders, that cannot be safely duplicated.
- (Base Game & DLC) Added "Wonder Priority" mod options for all three vanilla wonders, allowing you to set their priority between 0 (never spawns) and 2 (high priority).
ilikegoodfood  [author] 9 Feb @ 10:30am 
Version 2.4.17 (Duplicate Wonders):
- (Base Game & DLC) New Mod option: "Allow Duplicate Wonders". If enabled, the same wonder can be generated multiple times.
- (Base Game & DLC) Increased maximum target wonder count from 3 to 9.
- (Base Game & DLC) Fixed wonders not spawning in map generation after the 1st map since launching the application.
- (Base Game & DLC) Fixed null reference exception that could occur if generating multiple games in a row.
ilikegoodfood  [author] 9 Feb @ 3:26am 
Version 2.4.16 (Misc. Fixes):
- (DLC) Fixed incorrect tool-tip in Xerxes Sand 2 event outcome. The second outcome requires a minion and 4 or more might.
- (DLC) Elven expansion now respects awareness of underground.
- (Base Game & DLC) Build Mage Camp (`Ch_Orcs_BuildMages`) now makes use of the Community Library's `checkKnowsMagic` function, allowing it to recognise all registered modded magic types (Fleshcrafting and Curseweaving), in addition to the base game ones.
ilikegoodfood  [author] 5 Feb @ 5:31am 
Version 2.4.15 (Wonder Spawning Hotfix):
- (Base Game & DLC) Fixed that base game wonders were not spawning.
ilikegoodfood  [author] 5 Feb @ 3:32am 
Version 2.4.14 (Dark Prophets):
This update log is too long for a comment. Check it out in full in the Change Notes tab:

Here are some highlights:
- Removed support for Obsolete game versions (1.0 and 0.13).
- (DLC) Fixed that the description of "Dwarven Vigilance" claimed to grant 3 security, but actually granted 4. It now claims to grant 4.
- (Base Game & DLC) New Mod Option: "Dark Prophets".
- - DISABLED by default.
- - If enabled, a holy orders prophet that is from one of Ophanim's Theocracies, or that is enshadowed (shadow > 50%) and from The Dark Empire, will count as a player controlled prophet from purposes of influence gain.
- - Makes use of the new `bool checkIsProphetPlayerAligned(HolyOrder order)` utility function in the Community Library's mod kernel.
- (Base Game & DLC) Deep Ones Plus' "Drowned Prophet" will always count as a player controlled prophet from purposes of influence gain.
ilikegoodfood  [author] 1 Feb @ 12:54am 
Version 2.4.13 (Intermediates):
Implemented a set of intermediate classes designed to allow for easier grouping and detection of certain things between mods. These are:
`Set_Wonder`, `Sub_Wonder`, `Set_NaturalWonder` and `Sub_NaturalWonder`, and `T_MagicMastery`.
- Wonders Subtypes have no default behaviour.
- Natural Wonder Subtypes will be automatically treated like the base game wonders for the purposes of Orc logic.

- `T_MagicMastery` intermediate class.
- - This class has default `getMaxLevel` override, which returns 3.
- - This class has default `turnTick` override, which manages the magical arms race.

Mods needing to check for subtypes of these intermediates can check for the intermediates, rather than each one in turn. This does not effect base-game wonders.
For full changelog, see the Change Notes Tab.