You are viewing a potentially older version of this package. View all versions.
ATS_API_Devs-API-3.1.0 icon

API

Simplifies adding/changing ATS and adds fixes/QOL changes.

Date uploaded a week ago
Version 3.1.0
Download link ATS_API_Devs-API-3.1.0.zip
Downloads 55
Dependency string ATS_API_Devs-API-3.1.0

This mod requires the following mods to function

BepInEx-BepInExPack-5.4.2100 icon
BepInEx-BepInExPack

BepInEx pack for Mono Unity games. Preconfigured and ready to use.

Preferred version: 5.4.2100

README

Against The Storm API

This mod is designed to be used in conjunction with other mods that wish to add new content to the game. It provides a number of useful functions for adding new things to the game in a way that takes away the struggles of understanding the code base and more.

Against the Storm is a deeply complex game with tricky to navigate code for the average person. Also with the game being regular updated it's impossible to know what the devs will change in code which can result in your mod breaking and requiring you to manually fix and reupload it.

The API works as an in-between of your mod and the game by supplying helper methods that create new content and insert it into the game accordingly. This means that if the game updates and breaks your mod, the API will be updated to fix it and require little to no support from your end. (fingers crossed)

alt text alt text

How to install

Installation with Thunderstore (Recommended)

  1. Download and install the Thunderstore app for free from here
  2. Install API mod using the Thunderstore App
    • Be sure BepInEx is installed too!
  3. Run the game using Thunderstore

Manual Installation

  1. Install v5.4.21 of BepInEx
  2. Install API mod
    • Download content using the Manual Download button
    • Extract the contents of the zip into the Against the Storm/BepInEx/plugins folder
  3. Run the game

Help

Example Mod

The API is worked alongside the Example Mod mod which contains at least 1 of every new feature in the API to ensure everything is working as we expect.

You're encouraged to view all the code and copy+paste anything you require into your own mod.

If anything does not work please reach out on the discord!

Github: https://github.com/JamesVeug/AgainstTheStormAPI/tree/master/ExampleMod

Thunderstore: https://thunderstore.io/c/against-the-storm/p/ATS_API_Devs/ExampleMod/

Discord

If you require help with the mod, have ideas you want added, want to report a problem or just want to chat join our discord.

https://discord.com/invite/ZfVWG86gsJ

Wiki

If you need help with how to use the API here is the wiki to provide examples and explanations.

https://github.com/JamesVeug/AgainstTheStormAPI/blob/master/ATS_API/WIKI/WIKI.md

Support added for

  • New Goods (items that can be traded/sold, food & fuel)
  • New Perks/Cornerstones
  • New Traders
  • New Orders (Minimal)
  • New Buildings
    • House
    • Workshop
    • Decoration (+Custom tier support)
  • New Recipes
  • New Races (Experimental)
  • New Difficulties
  • New MetaRewards (Goods and Effects when embarking)
  • New Biomes (Minimal)
  • Localization for all of the above
  • Custom Hotkeys (Saving and rebinding included)
  • Custom Save/Load system

Other stuff added

  • Any options/configs that mods add can be modified in the options menu of the game.
  • Enums that list everything in the game, so you can easily see what items/orders exist and get their data without hassle.

API Localization

The API contains text that is needed for custom message popups, missing content added by mods and others. The text has been google translated by default to other languages.

If you'd like to help translate the text to your language please reach out on the discord or suggest changes on the spread sheet

Contributors

  • JamesGames

Special Thanks

  • TelHurin (Eremite Games)
  • Shush
  • ElenaRoan
  • f⑨

CHANGELOG

3.x.x

  • Buildings
    • Added support for custom decorations
    • Added support for custom decoration tiers
    • Added support to BuildingBuilders to change tile size
      • Only 1x1 and 2x2 tested
    • Added first pass support to modify existing builds
  • Biomes
    • Added Gather and Fall sound support for NaturalResources
    • Added custom terrain support for biomes
      • Placeholder Masked type to overlay textures easily
      • Custom terrain handling support
    • Added support to set fertile amount text
    • Added support to set how much soil is in a biome (Only 0 nullifies it atm)
  • Enum helpers
    • Added WorkshopTypes enum
    • Added DecorationTierTypes enum
    • Added more comments overall and line breaks to summary
    • Added integer value to all enums (Except EffectResolveTypes)
    • Fixed .All() not including custom enums
    • Updated to v1.5.6R (Safe)
  • Other
    • Added EventBus to store various events to reduce mods needing to patch the same method over and over again
    • Fixed AssetBundlerHelper unloading a bundler after extracting something once
    • Improved logging when failing to load sounds

3.0.1

  • Bumped ATS version to 1.5.6R
  • Added more support for WorkshopRecipeBuilder

3.0.0 - Possible mod breaking changes.

  • Bumped ATS version to 1.5.5R
  • Added comments/documentation to API so modders have an idea of what things do (Project needs documentation pass)
  • Added Custom support for Biomes (Minimal)
  • Updated all enums to 1.5.2R with HEAPS more documentation (Mod breaking)
  • API now localizes all custom text to supported languages using google-translate
  • Added more enums
    • SimpleSeasonalEffectTypes
    • ResourcesDepositsTypes
    • NaturalResourceTypes
  • Added more documentation to enums
  • Added more helper methods
  • LocalizationManager now supports loading .csv and .tsv files
  • Added How to make asset bundles to WIKI
  • When playing in Spanish Latin American will default to Spanish translations
  • Possibly more languageCode fixes

2.3.0

  • Added Custom saving support
  • Added Custom Meta Reward support (Goods and Effects)
  • Added AscensionModifierTypes enum
  • Added GeneralPopup which any mod can use
    • Custom save system uses this when a file fails to load
  • Mods Tab now shows a tooltip with mod description and dependencies and if they are installed or not.
  • MetaRewardTypes enum updated to 1.4.17R and now includes the type of MetaReward
  • Difficulty cleanup and added more methods (may break existing mods - none on thunderstore atm)
  • Added missing Key methods for HookedEffectBuilder
  • Exposed more stuff that was previously private
  • Added preset Localization keys
  • Deprecated RegisterKey function for Hotkeys in favor of New
  • Removed a bunch of logs to reduce console spam
  • Goods and effects now have custom icon types

2.2.0

  • Added Custom Difficulty support
  • Fixed localization not working
  • Fixed ChineseSimplified and Chinese Traditional using wrong locale codes

2.1.0

  • Bumped ATS version to 1.4.11R
  • Options/Configs for mods that can be modified will show in the options menu now
  • Improved support for custom hotkeys that appear in the options menu too

2.0.0 - Contains mod breaking changes.

  • Bumped ATS version to 1.4.4R
    • Updated Enum helpers
  • Added Custom race support (first pass)
  • Added ResolveEffectBuilder
  • Added more columns to relics.csv export
  • Added stack trace when failing to find data using enum helpers
  • Custom BuildingTagModel support
  • Refactored loading mods flow to be less error-prone

1.2.4

  • Fixed infinite loading screen when loading save with the SkyScaper building
  • Fixed infinite loading screen when loading save with missing perks/effects
  • Added MetaCurrencyTypes enum helper
  • Added more SetIcon methods for goods and effect builders
  • Added AddHostility helper method to EffectFactory
  • Added order support when exporting csv data
  • Reduced console spam

1.2.3

  • Added VillagerPerkTypes enum helper
  • Added BuildingPerkTypes enum helper

1.2.2

  • Added Set icon method for GoodsBuilder, so it also changes inline images
  • Added string to Types enum helper for all enum types
  • Added support to replace existing inline images
  • Added load and export helpers for audio
  • Added export texture helper method
  • Reduced number of logs

1.2.1

  • Added CSVBuilder helper to export relics
  • Added GoodsCategoriesTypes enum helper
  • Can now do your own csv and .cs enum export using configs
  • Fixed displayName, description and shortDescription not editable if key exists.
  • Fixed New goods not working with new traders
  • Fixed not being able to add new strings after game has loaded
  • Added more config options

1.2.0 - Contains mod breaking changes.

  • Light support for custom buildings with and without a custom model
    • Houses and Workshops
  • Added RecipeBuilder and WorkshopRecipeBuilder
  • Added new enums
    • BiomeTypes
    • BuildingBehaviourTypes
    • BuildingCategoryTypes
    • BuildingTagTypes
    • BuildingTypes
    • DifficultyTypes
    • EffectTypes
    • GoalTypes
    • GoodsTypes (Enums have been changed)
    • MetaRewardTypes
    • NeedTypes
    • OreTypes
    • ProfessionTypes
    • RaceTypes
    • RelicTypes
    • ResolveEffectTypes
    • SeasonTypes
    • TagTypes
    • TraderTypes
  • Added ToName, GetAll and ToModel helper methods for all enum types
  • Added remove hook helper methods
  • Added SetShowHookedRewardsAsPerks effect helper
  • Added missing language support to hooked effect building (Code breaking)
  • Added namespace for SeasonTypes (Code breaking)
  • Added helper method to generate .cs files for all enums
  • Added Asset bundle helper methods
  • Fixed custom effects without declaring a hook throwing an exception
  • Fixed custom effects that add removal hooks not working
  • Fixed localization sometimes not working for custom mods
  • More code comments/documentation

1.1.1 - Possible mod breaking changes.

  • Added defaults to new goods and effects to avoid errors when making a new perk/cornerstone
  • Added light support for devs to specify a renaming of an effect to avoid breaking saves.
  • Added AfterSeasonChanges Hook (Thanks Shush!)
  • Added SetLabel for EffectBuilders
  • Added GoodsTypes enum for easier referencing types. Can still use string if preferred
  • Fixed missing resolve effects breaking existing save files
  • Fixed HookedEffectBuilder.AddInstantEffect changing the name of the main effect
  • Fixed error message when trying to get a Good that does not exist
  • Renamed SetMissingFields to AssignMissingFieldsToEffect
  • Renamed CanbeSoldToAllTraders to CanBeSoldToAllTraders
  • Changed a lot of namespaces to be more precise

1.1.0

  • Added Custom Trader support
  • Added BareBones support for Custom Order
  • Added GoodsProductionBuilder
  • Added lots more helper methods
  • Fixed tooltip icons showing text instead of icons
  • Fixed unable to sell custom goods at trader (1.3.3)
    • Added optional Short description goods
  • Fixed new fuels breaking existing save files

1.0.0

  • Added Custom Goods support
  • Added Custom Cornerstones support