Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
90 changes: 89 additions & 1 deletion docs/docs/introduction.md
Original file line number Diff line number Diff line change
@@ -1 +1,89 @@
# Introduction
# Introduction
Hi! This page will teach you the very basics of modding Polytopia.

# How do I make a mod?
Polytopia mods can be 3 things: folders, `.zip` files and `.polymod` files.

Mods also have a `manifest.json` file, aswell as other components. Mods are stored in the `Mods` folder of the Polytopia root folder (Polytopia root folder is the folder that holds all the information about the game).

> [!TIP]
> You can access the root folder in the following ways:
>
> **On steam:**
>
> Go to Library --> Polytopia, click on the little gear icon on the right side of the screen, then go Manage --> Browse local files.
>
> **On epic**
>
> [I HAVE NO CLUE LMAO TO FIX!!!!!!!!!!!!]

Comment on lines +16 to +19
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Replace unresolved placeholder text before merge.

Line 18 still contains an internal placeholder (I HAVE NO CLUE...) and shouldn’t ship in public docs. Either provide verified Epic steps or explicitly mark as “TBD” in neutral language.

🧰 Tools
🪛 LanguageTool

[style] ~19-~19: Consider a more concise word here.
Context: ... HAVE NO CLUE LMAO TO FIX!!!!!!!!!!!!] In order to make a new mod, you have to create a ne...

(IN_ORDER_TO_PREMIUM)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/docs/introduction.md` around lines 16 - 19, The doc contains an
unresolved placeholder under the "**On epic**" section reading "I HAVE NO CLUE
LMAO TO FIX!!!!!!!!!!!!"; replace that exact placeholder with either a short,
verified set of Epic steps (clear actionable bullets) or a neutral "TBD — Epic
steps to be added" note, and ensure the text uses professional tone and matches
surrounding Markdown style (e.g., keep the bold heading "**On epic**" and use
bullet list or a single neutral sentence).

In order to make a new mod, you have to create a new folder inside the `Mods` folder, name it, and then put a `manifest.json` file in it (more on this later). You can also zip this folder and rename the extension to `.polymod` so you can properly distribute it on the [polymod.dev](https://polymod.dev/) website.

How your file hierarchy should look like:
```
The Battle of Polytopia (this is your "polytopia root" folder)
--> Mods
--> ExampleMod1
--> manifest.json
--> ExampleMod2.zip
--> ExampleMod3.polymod
```

# Manifest
The `manifest.json` file contains the metadata (basic information) of your mod, things like its id, name, authors, dependencies, so on. This file is a json file, and looks something like this:
```json
{
"id": "docs_mod",
"name": "DocsMod",
"version": "1.2.3.4",
"authors": [
"John Polymod Klipi",
"Ex-Ploicit Content"
],
"dependencies": [
{
"id": "polytopia",
"min": "2.0.0"
},
{
"id": "another_cool_mod",
"required": false
}
],
"description": "This is a very cool mod that turns giants into the one and only Jesus Homonculus"
}
```
> [!TIP]
> If you aren't familiar with the JSON format, try [reading](https://json.org/) a bit about it first.

> [!NOTE]
> We advise you use some code editor app like Visual Studio Code or Notepad++ (or anything, just be comfortable writing JSON).
## Components of a manifest file:
### `id`:
The id of the mod, it's used by other mods to add your mod as a dependency. You can only use lowercase letters and underscores.
### `name`:
The user-friendly name of the mod. This is what regular users are going to see. You can put almost anything here.
### `version`:
Tells the user, aswell as the [polymod.dev](https://polymod.dev/) website what version of your mod this is. It only accepts numbers, and you format is so: `x.y.z.w` (`z` and `w` are optional, though `x` and `y` are not).
> [!NOTE]
> It is considered good practice to keep version updated.
### `authors`:
In this array you can credit anyone who has worked on the mod. Again, if you don't know how to format JSON arrays and whatnot, consider watching some tutorial or reading an article!
### `dependencies`:
You can tell PolyMod if your mod depends on any other mod using this field. If you put a mod here as seen in the example, PolyMod will try to load that first, and if it doesn't find that mod, and the dependency isn't set to false as seen in the example, PolyMod will not load your mod, to avoid breaking and crashing and otherwise unwanted behavior.
> [!TIP]
> There exists a "pseudo-mod" with the id of `polytopia`. In this example, we showcase how you can use that in order to set a minimum game version for your mod so it doesn't cause unexpected behavior on older versions! You don't need this for your mod to function, though.
### `description`:
Here you can tell users what your mod is about! When publishing, try to be descriptive because this is what's going to show up in the mod catalogue!
> [!TIP]
> It's generally a good idea to tell your users what dependencies your mod needs.

# Patch

# Sprites

# Localization

# Prefabs

# PolyScript (Advanced)