{"id":21332705,"url":"https://github.com/ithinkandicode/20mtd-spritereplacer","last_synced_at":"2026-03-05T08:02:12.669Z","repository":{"id":37974750,"uuid":"506378616","full_name":"ithinkandicode/20MTD-SpriteReplacer","owner":"ithinkandicode","description":"BepInEx plugin to replace sprites (textures) in 20 Minutes Till Dawn [collab with Zeprus]","archived":false,"fork":false,"pushed_at":"2023-06-20T11:38:59.000Z","size":165,"stargazers_count":3,"open_issues_count":3,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-15T01:14:29.159Z","etag":null,"topics":["bepinex-plugins","modding","unity-modding"],"latest_commit_sha":null,"homepage":"https://nexusmods.com/20minutestildawn/mods/13","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ithinkandicode.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-06-22T19:23:07.000Z","updated_at":"2025-01-04T07:23:15.000Z","dependencies_parsed_at":"2025-04-15T01:24:40.443Z","dependency_job_id":null,"html_url":"https://github.com/ithinkandicode/20MTD-SpriteReplacer","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/ithinkandicode/20MTD-SpriteReplacer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ithinkandicode%2F20MTD-SpriteReplacer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ithinkandicode%2F20MTD-SpriteReplacer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ithinkandicode%2F20MTD-SpriteReplacer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ithinkandicode%2F20MTD-SpriteReplacer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ithinkandicode","download_url":"https://codeload.github.com/ithinkandicode/20MTD-SpriteReplacer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ithinkandicode%2F20MTD-SpriteReplacer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30115662,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-05T03:40:26.266Z","status":"ssl_error","status_checked_at":"2026-03-05T03:39:15.902Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bepinex-plugins","modding","unity-modding"],"created_at":"2024-11-21T22:53:02.135Z","updated_at":"2026-03-05T08:02:12.634Z","avatar_url":"https://github.com/ithinkandicode.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 20MTD AssetReplacer\nBepInEx plugin to replace assets in 20 Minutes Till Dawn.\n\nCan currently replace:\n\n- Textures of Sprites\n- Audio\n\n## Usage\n\n### Thunderstore\n1. Install through Thunderstore\n2. Install any Asset-Mods based on AssetReplacer\n2. See Configuration\n\n### Manual\n1. Install BepInEx\n2. Add the plugin DLL to BepInEx\\plugins\n3. Install any Asset-Mods based on AssetReplacer\n\u003cbr\u003eThey should follow this structure:\n```\n20MinutesTillDawn\n  |--BepInEx\n      |--plugins\n          |--YourModFolderName\n              |--Textures\n              |   |--Enemies\n              |   |   |EyeMonster.png\n              |   |   |T_TreeMonster.png\n              |   |--Projectiles\n              |       |T_GunFX.png\n              |       |T_FireParticles.png\n              |--Audio\n                  |title.mp3\n                  |battle.mp3\n```\n\"Textures\" and \"Audio\" may only contain files corresponding to the type. E.g. Textures should not contain any text files, only images.\n\u003cbr\u003eFiles in \"Textures\" and \"Audio\" may follow any structure. They may be located in subdirectories or directly contained in the folders.\n\n4. See Configuration\n\n## Configuration\n### Thunderstore\n1. Enable/Disable which assets to replace\n2. Add the Mods directory names to the proper ModFolders configuration comma seperated\n\t\u003cbr\u003eThunderstore Format: ModCreator-Modname\n\t\u003cbr\u003eExample:\n\t```\n\t[Textures]\n\n\tEnableTextureMods = true\n\n\tTextureModFolders = Zeprus-ExampleTextureMod,Zeprus-ExampleTextureMod2\n\t```\n### Manual\n2. Add the Mods directory names to the proper ModFolders configuration comma seperated\n\t\u003cbr\u003eFormat: ModfolderName\n\t\u003cbr\u003eExample:\n\t\u003cbr\u003eMod folder is BepInEx/plugins/YourModFolderName\n\t```\n\t[Textures]\n\n\tEnableTextureMods = true\n\n\tTextureModFolders = YourModFolderName\n\t```\n\n## Setup\n\n1. Clone the repo\n2. Add libs to /lib:\n\t- Add all the DLLs from the game's Managed folder\n\t- Add all BepInEx DLLs\n3. Install any pre-requisite stuff (see [BepInEx setup docs](https://docs.bepinex.dev/articles/dev_guide/plugin_tutorial/1_setup.html))\n3. Open in [Visual Studio](https://visualstudio.microsoft.com/vs/community/)\n4. Build via Build » Build Solution\n\t- Compiled DLL will be in /bin/Debug\n\n## Create Asset-Mods\n\n### Thunderstore\n1. Create your [Thunderstore package](https://github.com/ebkr/r2modmanPlus/wiki/Structuring-your-Thunderstore-package)\n2. Create a \"plugins\" folder inside your package\n3. Create a folder inside plugins named after the asset type you want to replace (e.g. textures or audio)\n4. Place your replacement assets inside the proper subfolder following any structure\n5. (Optional) Write a BepInEx-Plugin that calls AssetReplacer.API.Register(\"Author-Modfoldername\", AssetReplacer.API.AssetType.\\[Textures/Audio\\]) during its Awake() function and has AssetReplacer as dependency. See example plugin directory or [this complete example](https://github.com/Zeprus/20MTD-SophisticatedMonsters).\n\nStructure examples:\n```\nMyThunderStorePackage.zip\n|(optional)BepInExPlugin.dll\n|README.md\n|icon.png\n|manifest.json\n|--Plugins\n\t|--Textures\n\t|\t|--Enemies\n\t|\t|\t|EyeMonster.png\n\t|\t|\t|T_TreeMonster.png\n\t|\t|\n\t|\t|--Projectiles\n\t|\t\t|T_GunFX.png\n\t|\t\t|T_FireParticles.png\n\t|--Audio\n\t\t|title.mp3\n\t\t|battle.mp3\n```\n```\nMyThunderStorePackage.zip\n|(optional)BepInExPlugin.dll\n|README.md\n|icon.png\n|manifest.json\n|--Plugins\n\t|--Textures\n\t|\t|EyeMonster.png\n\t|\t|T_TreeMonster.png\n\t|\t|T_GunFX.png\n\t|\t|T_FireParticles.png\n\t|\n\t|--Audio\n\t\t|title.mp3\n```\n## Links\n\n- [Steam](https://store.steampowered.com/app/1966900/20_Minutes_Till_Dawn/)\n- [Nexus Mods](https://www.nexusmods.com/20minutestildawn)\n- [Discord](https://discord.gg/DtSPxBXtWJ)\n- [Discord » Modding Channel](https://discord.com/channels/976039553683034122/987507054082162758)\n- [Wiki » Modding](https://minutes-till-dawn.fandom.com/wiki/Modding)\n- [BepInEx Github](https://github.com/BepInEx/BepInEx/releases)\n- [BepInEx Docs](https://docs.bepinex.dev/index.html)\n\n\n## Credits\n\n- [TormentedEmu/7DTD-A19-DMTMods](https://github.com/TormentedEmu/7DTD-A19-DMTMods/blob/master/TE_MenuMusic/Harmony/Harmony.cs) - Code for the music loader\n\n## Changelog\n- 20.2.0 added API for registering Modfolders programmatically \n- 20.1.0 Bugfixes for 20MTD v1.0 release, increased stability\n- 20.0.0 Thunderstore release\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fithinkandicode%2F20mtd-spritereplacer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fithinkandicode%2F20mtd-spritereplacer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fithinkandicode%2F20mtd-spritereplacer/lists"}