From 0b76a37fe35637da4966a3f9cb6ba3008d941691 Mon Sep 17 00:00:00 2001 From: Robyn Date: Tue, 30 Jul 2024 00:57:17 -0500 Subject: [PATCH] fix: markdown lint --- .vscode/settings.json | 7 +- www/Community-Decisions/Referendum-1.md | 2 +- www/Community-Decisions/Referendum-2.md | 32 ++++---- www/Community-Guidelines.md | 47 +++++------ www/Guides/Choosing-A-License.md | 30 ++++--- www/Guides/Uploading-Your-First-Package.md | 95 +++++++++++----------- www/Guides/Your-First-Mod.md | 28 ++++--- 7 files changed, 120 insertions(+), 121 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index e90b92c..fd0a97f 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -14,5 +14,10 @@ "PEGI", "teleporting", "Thunderstore" - ] + ], + "markdownlint.config": { + "MD025": false, + "MD028": false, + "MD033": false, + } } diff --git a/www/Community-Decisions/Referendum-1.md b/www/Community-Decisions/Referendum-1.md index 28ff3a3..81f52d5 100644 --- a/www/Community-Decisions/Referendum-1.md +++ b/www/Community-Decisions/Referendum-1.md @@ -4,7 +4,7 @@ parent: Referendums grand_parent: Home --- -

Lethal Company Community - Thunderstore Referendum on Rules and Policy no. 1

+# Lethal Company Community - Thunderstore Referendum on Rules and Policy no. 1 - [Points of Order](#points-of-order) - [Summary](#summary) diff --git a/www/Community-Decisions/Referendum-2.md b/www/Community-Decisions/Referendum-2.md index cdeb44a..e75ffdc 100644 --- a/www/Community-Decisions/Referendum-2.md +++ b/www/Community-Decisions/Referendum-2.md @@ -4,17 +4,17 @@ parent: Referendums grand_parent: Home --- -

Lethal Company Community - Thunderstore Referendum on Rules and Policy no. 2

- -- [Points of Order](#points-of-order) -- [A suggested Policy for how to handle bigotry, hate and authors that espouse such positions](#a-suggested-policy-for-how-to-handle-bigotry-hate-and-authors-that-espouse-such-positions) - - [The Axioms Defining This Policy Decision](#the-axioms-defining-this-policy-decision) -- [Examples of Allowed and Restricted Content](#examples-of-allowed-and-restricted-content) - - [Allowed Content](#allowed-content) - - [Disallowed Content](#disallowed-content) -- [Open Forum for Suggestions](#open-forum-for-suggestions) - - [Footnotes](#footnotes) - +# Lethal Company Community - Thunderstore Referendum on Rules and Policy no. 2 + +- [Lethal Company Community - Thunderstore Referendum on Rules and Policy no. 2](#lethal-company-community---thunderstore-referendum-on-rules-and-policy-no-2) + - [Points of Order](#points-of-order) + - [A suggested Policy for how to handle bigotry, hate and authors that espouse such positions](#a-suggested-policy-for-how-to-handle-bigotry-hate-and-authors-that-espouse-such-positions) + - [The Axioms Defining This Policy Decision](#the-axioms-defining-this-policy-decision) + - [Examples of Allowed and Restricted Content](#examples-of-allowed-and-restricted-content) + - [Allowed Content](#allowed-content) + - [Disallowed Content](#disallowed-content) + - [Open Forum for Suggestions](#open-forum-for-suggestions) + - [Footnotes](#footnotes) ## Points of Order @@ -48,8 +48,6 @@ The Lethal Company Modding Community of the Thunderstore site defines as harmful > Commission of the offense for a motive based on race, colour, birth, national or ethnic origin, religion or belief, sexual orientation or disability or for another comparable motive[^2] - - 2. The support of genocide or genocidal actions[^1] Community members will not commit nor participate in committing support of genocide or genocidal actions. Nor will community members link their work to a group or person who commits or participates in committing the same. Further, community members commit to keeping any spaces they reserve for the use of developing, maintaining or promoting their community hosted content clean of the above defined acts. The community does not wish to be associated with such. @@ -76,15 +74,15 @@ The Lethal Company Modding Community of the Thunderstore site defines as harmful {: .note} > This feedback channel has been archived -> +> > This policy and suggested changes, were added to our community guidelines, thank you for your feedback. -Please join us for the week of June 24th to discuss the above policy and provide feedback on the status of all existing community policy. Please join the community server and navigate to the Policy-Referendum-2 channel. +Please join us for the week of June 24th to discuss the above policy and provide feedback on the status of all existing community policy. Please join the community server and navigate to the Policy-Referendum-2 channel. ### Footnotes [^1]: - -- Criminal Code, R.S.C. 1985, c. C-46 (Canada) https://lop.parl.ca/sites/PublicWebsite/default/en_CA/ResearchPublications/201825E + -- Criminal Code, R.S.C. 1985, c. C-46 (Canada) [^2]: - -- Ministry of Justice, Finland. *Criminal Code (39/1889; amendments up to 433/2021 included)*. Translation from Finnish. Legally binding only in Finnish and Swedish. https://www.finlex.fi/fi/laki/kaannokset/1889/en18890039.pdf + -- Ministry of Justice, Finland. **Criminal Code (39/1889; amendments up to 433/2021 included)**. Translation from Finnish. Legally binding only in Finnish and Swedish. diff --git a/www/Community-Guidelines.md b/www/Community-Guidelines.md index 3cd402f..00d33d2 100644 --- a/www/Community-Guidelines.md +++ b/www/Community-Guidelines.md @@ -4,25 +4,24 @@ parent: Home nav_order: 4 --- -# Lethal Company Modding Community Guidelines +# Community Guidelines These guidelines were last updated on the 29th of June, 2024 by public committee and have been made available publicly for those that cannot view them on the community Discord or otherwise require a reference. ## Table of Contents -- [Lethal Company Modding Community Guidelines](#lethal-company-modding-community-guidelines) +- [Community Guidelines](#community-guidelines) - [Table of Contents](#table-of-contents) - [Preamble: The Axioms We Hold Self-Evident as a Community](#preamble-the-axioms-we-hold-self-evident-as-a-community) -- [Guidelines For Uploading to our Thunderstore Community](#guidelines-for-uploading-to-our-thunderstore-community) - - [General Prohibitions](#general-prohibitions) - - [General Upload Guidelines](#general-upload-guidelines) - - [Forking an Existing Mod](#forking-an-existing-mod) - - [Unacceptable Content Policy](#unacceptable-content-policy) - - [Examples of Allowed and Restricted Content](#examples-of-allowed-and-restricted-content) - - [Allowed Content](#allowed-content) - - [Disallowed Content](#disallowed-content) - - [Footnotes](#footnotes) - + - [Guidelines For Uploading to our Thunderstore Community](#guidelines-for-uploading-to-our-thunderstore-community) + - [General Prohibitions](#general-prohibitions) + - [General Upload Guidelines](#general-upload-guidelines) + - [Forking an Existing Mod](#forking-an-existing-mod) + - [Unacceptable Content Policy](#unacceptable-content-policy) + - [Examples of Allowed and Restricted Content](#examples-of-allowed-and-restricted-content) + - [Allowed Content](#allowed-content) + - [Disallowed Content](#disallowed-content) + - [Footnotes](#footnotes) ## Preamble: The Axioms We Hold Self-Evident as a Community @@ -38,9 +37,9 @@ These guidelines were last updated on the 29th of June, 2024 by public committee 6. An author that has used our community, against our wishes, to do the above has, by their own actions, become labelled _Persona Non Grata_ and, depending on severity of the infraction, acceptable solutions range from permanent expulsion to forced reclassification as a "NSFW" mod. -# Guidelines For Uploading to our Thunderstore Community +## Guidelines For Uploading to our Thunderstore Community -## General Prohibitions +### General Prohibitions In keeping with our desire to foster a collaborative community, we strictly prohibit mod authors from the following: @@ -52,7 +51,7 @@ In keeping with our desire to foster a collaborative community, we strictly proh - Uploading client side enabled cheating mods or mods that grant an unfair advantage to one player to the community. -## General Upload Guidelines +### General Upload Guidelines When uploading a package to the community we ask that community members follow these simple guidelines: @@ -65,7 +64,7 @@ When uploading a package to the community we ask that community members follow t - New mods intended for use and consumption as libraries must have permissive licensing to remain listed in the Lethal Company section of Thunderstore. Please familiarize yourself with different licenses and choose the appropriate one promptly to ensure your mod stays listed. Existing Mod authors should select an appropriate license and either bundle it in their package as a LICENSE file as recommended in the Packaging Tutorial or link to a public github repository that contains such a LICENSE file as their web link. -## Forking an Existing Mod +### Forking an Existing Mod {: .important} > Even if you have the legal right to redistribute another author's work, we ask that you follow these guidelines first before uploading a fork to our community: @@ -78,7 +77,7 @@ If the mod already exists within the Lethal Company Modding public organization, - At this stage, if the project is appropriately licensed to allow such, a fork may be required. It is _highly_ encouraged to contact Robyn about moving the mod in question into community possession within the Lethal Company Modding Github so that it may be maintained indefinitely without changing dependency strings again. -## Unacceptable Content Policy +### Unacceptable Content Policy The Lethal Company Modding Community of the Thunderstore site defines as harmful content and prohibits the following, non-exhaustive, list of topics from appearing in the text fields of uploaded packages or links in packages: @@ -91,34 +90,32 @@ The Lethal Company Modding Community of the Thunderstore site defines as harmful > Commission of the offense for a motive based on race, colour, birth, national or ethnic origin, religion or belief, sexual orientation or disability or for another comparable motive[^2] - - 2. The support of genocide or genocidal actions[^1] Community members will not commit nor participate in committing support of genocide or genocidal actions. Nor will community members link their work to a group or person who commits or participates in committing the same. Further, community members commit to keeping any spaces they reserve for the use of developing, maintaining or promoting their community hosted content clean of the above defined acts. The community does not wish to be associated with such. -### Examples of Allowed and Restricted Content +#### Examples of Allowed and Restricted Content > These examples are non-exhaustive. Links to off-platform material may still be grounds for package removal at the discretion of site and community moderation. If you have questions or concerns about your package you may speak to any Thunderstore Volunteer on the community server -#### Allowed Content +##### Allowed Content - Links to Github source code repositories - Links to the author's Kofi - Links to an author's social media that contain none of the prohibited content outlined above - Links to moderated communities where prohibited content is not tolerated (Ex: The Lethal Company Modding Community, The Unofficial Lethal Company Community) -#### Disallowed Content +##### Disallowed Content - Links to hate groups or extremist websites (ex: The Ku Klux Klan's site) - Links to an author's social media that contains _any_ of the prohibited content outlined above - Links to communities where _any_ of the prohibited content is allowed or encouraged (ex: un-moderated Discord servers) - Package descriptions or titles that contain _any_ of the prohibited content -### Footnotes +#### Footnotes [^1]: - -- Criminal Code, R.S.C. 1985, c. C-46 (Canada) https://lop.parl.ca/sites/PublicWebsite/default/en_CA/ResearchPublications/201825E + -- Criminal Code, R.S.C. 1985, c. C-46 (Canada) [^2]: - -- Ministry of Justice, Finland. *Criminal Code (39/1889; amendments up to 433/2021 included)*. Translation from Finnish. Legally binding only in Finnish and Swedish. https://www.finlex.fi/fi/laki/kaannokset/1889/en18890039.pdf + -- Ministry of Justice, Finland. **Criminal Code (39/1889; amendments up to 433/2021 included)**. Translation from Finnish. Legally binding only in Finnish and Swedish. diff --git a/www/Guides/Choosing-A-License.md b/www/Guides/Choosing-A-License.md index 455385c..0ca8787 100644 --- a/www/Guides/Choosing-A-License.md +++ b/www/Guides/Choosing-A-License.md @@ -8,28 +8,27 @@ grand_parent: Home ![Static Badge](https://img.shields.io/badge/Version-All-blue?style=for-the-badge) -# Overview +# Choosing a License ![Static Badge](https://img.shields.io/badge/Skill_Level-Intermediate-orange?style=for-the-badge) ![Static Badge](https://img.shields.io/badge/Estimated_Time-45_Minutes-orange?style=for-the-badge) +Hey, so you've made a mod, great job! But now you're stumped: Which license do I choose? Here are some suggestions from the Lethal Company Modding Community. Make sure you understand any license you select fully. + +{: .note} +> Changing a project's license does not apply retroactively. Choose an appropriate license at the start of your project and stick with it to avoid confusion and problems down the road + You will learn: + - The pros and cons of various open source licenses - The license that is most suitable for your project (hopefully) Prerequisites: -- Patience -# Choosing a License - -Hey, so you've made a mod, great job! But now you're stumped: Which license do I choose? Here are some suggestions from the Lethal Company Modding Community. Make sure you understand any license you select fully. - -{: .note} -> Changing a project's license does not apply retroactively. Choose an appropriate license at the start of your project and stick with it to avoid confusion and problems down the road +- Patience ## Table of Contents -- [Overview](#overview) - [Choosing a License](#choosing-a-license) - [Table of Contents](#table-of-contents) - [GNU Licenses](#gnu-licenses) @@ -39,15 +38,14 @@ Hey, so you've made a mod, great job! But now you're stumped: Which license do I - [Mozilla Public License 2.0](#mozilla-public-license-20) - [Appache License 2.0](#appache-license-20) - [Creative Commons Licenses](#creative-commons-licenses) - - [Attribution 4.0 International:](#attribution-40-international) - - [Attribution 4.0 Share A like International:](#attribution-40-share-a-like-international) + - [Attribution 4.0 International](#attribution-40-international) + - [Attribution 4.0 Share A like International](#attribution-40-share-a-like-international) - [Attribution 4.0 No Derivatives Non Commercial](#attribution-40-no-derivatives-non-commercial) - [Creative Commons Zero](#creative-commons-zero) - [MIT License](#mit-license) - [Boost Software License](#boost-software-license) - [Acknowledgments](#acknowledgments) - ## GNU Licenses ### GNU AGPLv3 @@ -81,19 +79,19 @@ A permissive license whose main conditions require preservation of copyright and ## Creative Commons Licenses -### Attribution 4.0 International: +### Attribution 4.0 International This license permits other users to share, copy and remix your work without restriction except that they must attribute the original author. [Read More](https://creativecommons.org/licenses/by/4.0/deed.en) -### Attribution 4.0 Share A like International: +### Attribution 4.0 Share A like International This license permits other users to share, copy and remix your work without restriction except that they must attribute the original author and must share any derived works under the same license as the original. [Read More](https://creativecommons.org/licenses/by-sa/4.0/deed.en) -### Attribution 4.0 No Derivatives Non Commercial +### Attribution 4.0 No Derivatives Non Commercial This license permits other users to share, copy and remix your work without restrictions except that they must attribute the original author, may not sell your work or use it commercially and may not create and distribute derived works that contain your work in part or whole. @@ -119,4 +117,4 @@ A simple permissive license only requiring preservation of copyright and license # Acknowledgments -The contents of this page have been adapted from [ChooseAlicense](https://choosealicense.com/) and are distributed under the [Creative Commons Attribution 3.0 Unported License.](https://creativecommons.org/licenses/by/3.0/) +The contents of this page have been adapted from [ChooseALicense](https://choosealicense.com/) and are distributed under the [Creative Commons Attribution 3.0 Unported License.](https://creativecommons.org/licenses/by/3.0/) diff --git a/www/Guides/Uploading-Your-First-Package.md b/www/Guides/Uploading-Your-First-Package.md index c02c405..485cfc7 100644 --- a/www/Guides/Uploading-Your-First-Package.md +++ b/www/Guides/Uploading-Your-First-Package.md @@ -8,50 +8,50 @@ grand_parent: Home ![Static Badge](https://img.shields.io/badge/Version-56-blue?style=for-the-badge) -# Overview +# Uploading Your First Package ![Static Badge](https://img.shields.io/badge/Skill_Level-Beginner-blue?style=for-the-badge) ![Static Badge](https://img.shields.io/badge/Estimated_Time-10_Minutes-blue?style=for-the-badge) +Hey, you made a mod, great work! But uploading to the Thunderstore can be a bit daunting and there are a few _gotchas_ that aren't really well documented. In this brief tutorial I will help you avoid common pitfalls and successfully upload your first (or perhaps beyond) package to our community. + You will learn: + - The names and functions of each file required to create a Thunderstore package - The quirks of the various mod managers and the directory flattening rules your package must follow - How to apply the above skills to create a package with a specific directory structure (EG: A `moresuits` mod) - How to update an existing package Prerequisites: + - A [Thunderstore Account](https://thunderstore.io) (for publishing) - A Thunderstore [Team](https://thunderstore.io/settings/teams/) to publish to. -# Uploading Your First Package - -Hey, you made a mod, great work! But uploading to the Thunderstore can be a bit daunting and there are a few _gotchas_ that aren't really well documented. In this brief tutorial I will help you avoid common pitfalls and successfully upload your first (or perhaps beyond) package to our community. - ## Table of Contents -- [Overview](#overview) + - [Uploading Your First Package](#uploading-your-first-package) - [Table of Contents](#table-of-contents) -- [Package basics](#package-basics) - - [Required Files](#required-files) - - [icon.png](#iconpng) - - [README.MD](#readmemd) - - [manifest.json](#manifestjson) - - [Name](#name) - - [Version](#version) - - [Website URL](#website-url) - - [Description](#description) - - [Dependencies](#dependencies) - - [Optional Files](#optional-files) - - [CHANGELOG.MD](#changelogmd) - - [License](#license) -- [Package Structure](#package-structure) - - [Why do mod managers unpack my mod differently?](#why-do-mod-managers-unpack-my-mod-differently) - - [Examples](#examples) - - [Packaging for Moresuits](#packaging-for-moresuits) - - [Packaging a Modpack](#packaging-a-modpack) -- [Updating My Existing Mod](#updating-my-existing-mod) - -# Package basics + - [Package basics](#package-basics) + - [Required Files](#required-files) + - [icon.png](#iconpng) + - [README.MD](#readmemd) + - [manifest.json](#manifestjson) + - [Name](#name) + - [Version](#version) + - [Website URL](#website-url) + - [Description](#description) + - [Dependencies](#dependencies) + - [Optional Files](#optional-files) + - [CHANGELOG.MD](#changelogmd) + - [License](#license) + - [Package Structure](#package-structure) + - [Why do mod managers unpack my mod differently?](#why-do-mod-managers-unpack-my-mod-differently) + - [Examples](#examples) + - [Packaging for Moresuits](#packaging-for-moresuits) + - [Packaging a Modpack](#packaging-a-modpack) + - [Updating My Existing Mod](#updating-my-existing-mod) + +## Package basics There are a few basic files every package should have, lets go over them one at a time. You can follow along in this section, or use the [site documentation](https://thunderstore.io/package/create/docs/) instead if you think you can manage on your own. @@ -60,16 +60,16 @@ There are a few basic files every package should have, lets go over them one at If you'd like to you may follow along with a pre-made zip file: [Download](https://github.com/LethalCompanyModding/Thunderstore/raw/main/www/Guides/attachments/howto/example-mod.zip) -## Required Files +### Required Files -### icon.png +#### icon.png -This should be a unique icon of dimensions 256x256 for your mod. Seriously, use _exactly_ 256x256 or it will not work. It will show up in the Thunderstore and mod managers so make it interesting, descriptive and appropriate to a PG-13/PEGI-12 audience. +This should be a unique icon of dimensions 256x256 for your mod. Seriously, use _exactly_ 256x256 or it will not work. It will show up in the Thunderstore and mod managers so make it interesting, descriptive and appropriate to a PG-13/PEGI-12 audience. {: .warning} > It is Thunderstore policy that even mods marked as NSFW may not have NSFW material in the icon. -### README.MD +#### README.MD This file is a standard markdown file that describes your mod. Please be descriptive and tell users what to expect when installing and using your mod. Include important information such as what parts of the mod are configurable and known issues to be extra helpful. @@ -78,7 +78,7 @@ You may use [the markdown preview tool](https://thunderstore.io/tools/markdown-p {: .warning} > It is Thunderstore policy that even mods marked as NSFW may not have links to NSFW sites in their README file -### manifest.json +#### manifest.json The Manifest file contains all the information needed to install your mod automatically for users. @@ -96,23 +96,23 @@ Example: } ``` -#### Name +##### Name The `name` field and your team name used when uploading the mod will become the mod's final package ID and __cannot be changed__ without uploading a new package completely, so choose wisely. -#### Version +##### Version The `version_number` field is a semantic version following the format x.y.z and can be incremented (made larger) to update an existing package rather than upload a new one. See also: [SemVer Docs](https://semver.org/) -#### Website URL +##### Website URL The `website_url` field can be any link. It will be placed in a highly visible location on the Thunderstore page for your mod and should not contain any NSFW content when clicked. You may use it for nearly any purpose, but I suggest linking a github repo or social media. You may leave this field blank if you have nothing you wish to link. -#### Description +##### Description The `description` field is a short text description of your package. It cannot exceed 250 characters. This description will show up in search results on the Thunderstore -#### Dependencies +##### Dependencies The `dependencies` field is an array of other existing mods on the Thunderstore your mod requires to run. Mod managers will automatically download these files so you do not need to include them in your package and doing so may result in your package being marked invalid and rejected. @@ -135,16 +135,16 @@ If we wanted to include multiple dependencies we should add commas to the end of ] ``` -## Optional Files +### Optional Files {: .note} > Not every file needs to be included to make your package work, but having these will make your mod stand out just a bit more and look more professional. -### CHANGELOG.MD +#### CHANGELOG.MD This is simply another markdown file, just like the README. The difference is this file will be shown in its own tab for users to keep up on what you've recently changed in your mod. See [Enhancer](https://thunderstore.io/c/lethal-company/p/Mom_Llama/Lethal_Company_Enhancer/changelog/) for an example of how this will look in the browser. -### License +#### License {: .tip} > This file has no required name nor is it required to upload your package successfully, but it is highly recommend you do so anyway. A License file should be immediately recognizable as such and the filenames LICENSE, LICENSE.MD or LICENSE.TXT are very common and popular choices. @@ -153,7 +153,6 @@ You may be asking "Why do I need a license?" well, a license tells users, other For help choosing an appropriate license for your work see [Choosing a License](Choosing-A-License.html) - {: .important} > For Library Developers: > @@ -161,18 +160,18 @@ For help choosing an appropriate license for your work see [Choosing a License]( {: .warning} > A Deadline Approaches: -> +> > This Guideline will be enforced more strictly beginning September 1st 2024, please take this time to bring your existing packages into compliance -# Package Structure +## Package Structure -## Why do mod managers unpack my mod differently? +### Why do mod managers unpack my mod differently? R2ModManager / ThunderstoreMM both unpack mods into their own directory named after its dependency string and flatten the file hierarchy. This is a security feature and cannot be disabled _but_ there is a list of certain override directories that will change this behavior. See the documentation on the [R2ModMan Github repo](https://github.com/ebkr/r2modmanPlus/wiki/Structuring-your-Thunderstore-package) for more information on how to package your files so that they extract how your mod expects them to. -## Examples +### Examples -### Packaging for Moresuits +#### Packaging for Moresuits As an example of how to control the unpacking of your mod, lets examine the library [MoreSuits by 753](https://thunderstore.io/c/lethal-company/p/x753/More_Suits/). Moresuits is a library that loads textures from the /moresuits/ folder in every other plugin folder as suits for you and your friends to wear. In order to make this directory unpack correctly you simply need to follow the instructions in the r2modman repo and create a `moresuits` folder underneath another one named `plugins`. R2MM will recognize this folder structure and override the default behavior to preserve it. @@ -180,7 +179,7 @@ Your folder should look something like this ![img](attachments/howto/moresuits.webp) -### Packaging a Modpack +#### Packaging a Modpack First, you should consider if you _need_ to upload a modpack. R2ModMan can export profile codes to quickly share your mod list and config files with your friends. If that's all you need, then great, you can simply use a profile code instead. Modpacks are great for sharing with more than a few people, can include a readme and can be updated, so they can be an attractive option for creators. Let's go thru an example modpack now. @@ -195,6 +194,6 @@ Your final folder structure should look like this: ![img](attachments/howto/modpack.webp) -# Updating My Existing Mod +## Updating My Existing Mod To update an existing mod, simply change the manifest.json `version` field to be higher than it was previously and then upload your changes again to the same Team you did the first time. diff --git a/www/Guides/Your-First-Mod.md b/www/Guides/Your-First-Mod.md index b896096..0487834 100644 --- a/www/Guides/Your-First-Mod.md +++ b/www/Guides/Your-First-Mod.md @@ -8,17 +8,19 @@ grand_parent: Home ![Static Badge](https://img.shields.io/badge/Version-56-blue?style=for-the-badge) -# Overview +# Your First Mod ![Static Badge](https://img.shields.io/badge/Skill_Level-Beginner-blue?style=for-the-badge) ![Static Badge](https://img.shields.io/badge/Estimated_Time-20_Minutes-blue?style=for-the-badge) You will learn: + - How to use the LCMTemplate with Publishing to setup a new plugin project - How to configure your Thunderstore publishing workflow to automatically publish when your plugin updates - How to deploy your plugin to the game folder for debugging Prerequisites: + - [Visual Studio](https://visualstudio.microsoft.com/) / [VS Code](https://code.visualstudio.com/) / C# Compatible IDE - [Dotnet 8](https://dotnet.microsoft.com/en-us/download/dotnet/8.0) installed - [Git for Windows](https://gitforwindows.org/) / Git installed @@ -29,17 +31,17 @@ Prerequisites: ## Table of Contents -- [Overview](#overview) +- [Your First Mod](#your-first-mod) - [Table of Contents](#table-of-contents) -- [Initialize Your Plugin Repository](#initialize-your-plugin-repository) - - [Install the Template](#install-the-template) - - [Create the Remote Workspace](#create-the-remote-workspace) - - [Create the Local Workspace](#create-the-local-workspace) - - [Template Options](#template-options) + - [Initialize Your Plugin Repository](#initialize-your-plugin-repository) + - [Install the Template](#install-the-template) + - [Create the Remote Workspace](#create-the-remote-workspace) + - [Create the Local Workspace](#create-the-local-workspace) + - [Template Options](#template-options) -# Initialize Your Plugin Repository +## Initialize Your Plugin Repository -## Install the Template +### Install the Template {: .important} > Always keep in mind that dotnet templates are arbitrary code that can execute on your machine. Make sure you trust the source of any template you install! @@ -48,17 +50,17 @@ Before installing any template, take a moment to review all the files and be cer When you're ready to install the template run the following command in your terminal `dotnet new install [NUGET PACKAGE ID]` -## Create the Remote Workspace +### Create the Remote Workspace Create a [new repository](https://github.com/new) that will be the home of your plugin. Give it a name and description but otherwise do not use any other settings on this page. Do not create a readme and do not select a license, we will do this later. Once you have created the new repository by clicking the [Create Repository] button and waited for github to finish working, take note of the URL in your address bar, this will be needed for creating the template in the next step. -## Create the Local Workspace +### Create the Local Workspace Create a new folder with your project name wherever you'd like it to be on your computer and then open your terminal inside that folder. Initialize the project using the template by using the following command after substituting your own information in for the bracketed terms. Don't worry if its a little confusing, I will describe each item and give an example below. -### Template Options +#### Template Options {: .important} > ALL of these options are mandatory @@ -92,8 +94,8 @@ Create a new folder with your project name wherever you'd like it to be on your - Example Command: + ```bash dotnet new LCM_TS_Publishing --ProjectGUID com.github.robyn.mycoolmod --ProjectAuthor RobynLlama --ProjectDESC "The coolest mod ever made" --ProjectURL https://github.com/LethalCompanyModding/LCM-Template-TSPublishing ```