Merge branch 'main' of https://github.com/V-rtualized/balatro-mod-index
181
.github/scripts/update_mod_versions.py
vendored
Executable file
@@ -0,0 +1,181 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import json
|
||||
import os
|
||||
import re
|
||||
import requests
|
||||
import sys
|
||||
import time
|
||||
from datetime import datetime
|
||||
from pathlib import Path
|
||||
|
||||
# GitHub API rate limits are higher with authentication
|
||||
GITHUB_TOKEN = os.environ.get('GITHUB_TOKEN')
|
||||
HEADERS = {'Authorization': f'token {GITHUB_TOKEN}'} if GITHUB_TOKEN else {}
|
||||
|
||||
def extract_repo_info(repo_url):
|
||||
"""Extract owner and repo name from GitHub repo URL."""
|
||||
match = re.search(r'github\.com/([^/]+)/([^/]+)', repo_url)
|
||||
if match:
|
||||
owner = match.group(1)
|
||||
repo = match.group(2)
|
||||
# Remove .git suffix if present
|
||||
repo = repo.rstrip('.git')
|
||||
return owner, repo
|
||||
return None, None
|
||||
|
||||
def get_latest_release(owner, repo):
|
||||
"""Get the latest release version from GitHub."""
|
||||
url = f'https://api.github.com/repos/{owner}/{repo}/releases/latest'
|
||||
try:
|
||||
response = requests.get(url, headers=HEADERS)
|
||||
|
||||
if response.status_code == 200:
|
||||
data = response.json()
|
||||
return data.get('tag_name')
|
||||
elif response.status_code == 404:
|
||||
# No releases found
|
||||
return None
|
||||
elif response.status_code == 403 and 'rate limit exceeded' in response.text.lower():
|
||||
print("GitHub API rate limit exceeded. Waiting for 5 minutes...")
|
||||
time.sleep(300) # Wait for 5 minutes
|
||||
return get_latest_release(owner, repo) # Retry
|
||||
else:
|
||||
print(f"Error fetching releases: HTTP {response.status_code} - {response.text}")
|
||||
return None
|
||||
except Exception as e:
|
||||
print(f"Exception while fetching releases: {str(e)}")
|
||||
return None
|
||||
|
||||
def get_latest_commit(owner, repo):
|
||||
"""Get the latest commit hash from GitHub."""
|
||||
url = f'https://api.github.com/repos/{owner}/{repo}/commits'
|
||||
try:
|
||||
response = requests.get(url, headers=HEADERS)
|
||||
|
||||
if response.status_code == 200:
|
||||
commits = response.json()
|
||||
if commits and len(commits) > 0:
|
||||
# Return shortened commit hash (first 7 characters)
|
||||
return commits[0]['sha'][:7]
|
||||
elif response.status_code == 403 and 'rate limit exceeded' in response.text.lower():
|
||||
print("GitHub API rate limit exceeded. Waiting for 5 minutes...")
|
||||
time.sleep(300) # Wait for 5 minutes
|
||||
return get_latest_commit(owner, repo) # Retry
|
||||
else:
|
||||
print(f"Error fetching commits: HTTP {response.status_code} - {response.text}")
|
||||
|
||||
return None
|
||||
except Exception as e:
|
||||
print(f"Exception while fetching commits: {str(e)}")
|
||||
return None
|
||||
|
||||
def process_mods():
|
||||
"""Process all mods and update versions where needed."""
|
||||
mods_dir = Path('mods')
|
||||
updated_mods = []
|
||||
|
||||
print(f"Scanning {mods_dir} for mods with automatic version control...")
|
||||
|
||||
# Find all mod directories
|
||||
for mod_dir in [d for d in mods_dir.iterdir() if d.is_dir()]:
|
||||
meta_file = mod_dir / 'meta.json'
|
||||
|
||||
if not meta_file.exists():
|
||||
continue
|
||||
|
||||
try:
|
||||
with open(meta_file, 'r', encoding='utf-8') as f:
|
||||
meta = json.load(f)
|
||||
|
||||
# Skip mods without automatic version checking enabled
|
||||
if not meta.get('automatic-version-check', False):
|
||||
continue
|
||||
|
||||
print(f"Processing {mod_dir.name}...")
|
||||
|
||||
repo_url = meta.get('repo')
|
||||
if not repo_url:
|
||||
print(f"⚠️ Warning: Mod {mod_dir.name} has automatic-version-check but no repo URL")
|
||||
continue
|
||||
|
||||
owner, repo = extract_repo_info(repo_url)
|
||||
if not owner or not repo:
|
||||
print(f"⚠️ Warning: Could not extract repo info from {repo_url}")
|
||||
continue
|
||||
|
||||
print(f"Checking GitHub repo: {owner}/{repo}")
|
||||
|
||||
# Try to get latest release version first
|
||||
new_version = get_latest_release(owner, repo)
|
||||
version_source = "release"
|
||||
|
||||
# If no releases, fall back to latest commit
|
||||
if not new_version:
|
||||
print("No releases found, checking latest commit...")
|
||||
new_version = get_latest_commit(owner, repo)
|
||||
version_source = "commit"
|
||||
|
||||
if not new_version:
|
||||
print(f"⚠️ Warning: Could not determine version for {mod_dir.name}")
|
||||
continue
|
||||
|
||||
current_version = meta.get('version')
|
||||
|
||||
# Update version if it changed
|
||||
if current_version != new_version:
|
||||
print(f"✅ Updating {mod_dir.name} from {current_version or 'none'} to {new_version} ({version_source})")
|
||||
meta['version'] = new_version
|
||||
|
||||
with open(meta_file, 'w', encoding='utf-8') as f:
|
||||
# Preserve formatting with indentation
|
||||
json.dump(meta, f, indent=2, ensure_ascii=False)
|
||||
f.write("\n") # Add newline at end of file
|
||||
|
||||
updated_mods.append({
|
||||
'name': meta.get('title', mod_dir.name),
|
||||
'old_version': current_version,
|
||||
'new_version': new_version,
|
||||
'source': version_source
|
||||
})
|
||||
else:
|
||||
print(f"ℹ️ No version change for {mod_dir.name} (current: {current_version})")
|
||||
|
||||
except Exception as e:
|
||||
print(f"❌ Error processing {mod_dir.name}: {str(e)}")
|
||||
|
||||
return updated_mods
|
||||
|
||||
def generate_commit_message(updated_mods):
|
||||
"""Generate a detailed commit message listing all updated mods."""
|
||||
if not updated_mods:
|
||||
return "No mod versions updated"
|
||||
|
||||
timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
||||
|
||||
message = f"Auto-update mod versions ({timestamp})\n\n"
|
||||
message += "Updated mods:\n"
|
||||
|
||||
for mod in updated_mods:
|
||||
old_ver = mod['old_version'] or 'none'
|
||||
message += f"- {mod['name']}: {old_ver} → {mod['new_version']} ({mod['source']})\n"
|
||||
|
||||
return message
|
||||
|
||||
if __name__ == "__main__":
|
||||
print(f"🔄 Starting automatic mod version update at {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}...")
|
||||
updated_mods = process_mods()
|
||||
|
||||
if updated_mods:
|
||||
# Write commit message to a file that the GitHub Action can use
|
||||
commit_message = generate_commit_message(updated_mods)
|
||||
with open('commit_message.txt', 'w', encoding='utf-8') as f:
|
||||
f.write(commit_message)
|
||||
|
||||
print(f"✅ Completed. Updated {len(updated_mods)} mod versions.")
|
||||
else:
|
||||
print("ℹ️ Completed. No mod versions needed updating.")
|
||||
|
||||
# Exit with status code 0 even if no updates were made
|
||||
sys.exit(0)
|
||||
|
||||
113
.github/workflows/check-mod.yml
vendored
@@ -11,44 +11,81 @@ jobs:
|
||||
steps:
|
||||
- name: Check out repository
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0 # Get full history for comparing changes
|
||||
|
||||
- name: Install ImageMagick
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y imagemagick
|
||||
|
||||
- name: Check Required Files
|
||||
- name: Identify Changed Mods
|
||||
id: find-changed-mods
|
||||
run: |
|
||||
for dir in mods/*/; do
|
||||
if [ -d "$dir" ]; then
|
||||
MOD_DIR="$(basename "$dir")"
|
||||
# Fetch the base branch of the PR
|
||||
git fetch origin ${{ github.event.pull_request.base.ref }}
|
||||
|
||||
# Find all added or modified files in mods directory
|
||||
git diff --name-only --diff-filter=AM origin/${{ github.event.pull_request.base.ref }}..HEAD | grep -E '^mods/[^/]+/' | cut -d'/' -f1-2 | sort | uniq > changed_mods.txt
|
||||
|
||||
if [ ! -s changed_mods.txt ]; then
|
||||
echo "No mods were added or modified in this PR."
|
||||
echo "changed_mods_found=false" >> $GITHUB_OUTPUT
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "Changed mods found:"
|
||||
cat changed_mods.txt
|
||||
echo "changed_mods_found=true" >> $GITHUB_OUTPUT
|
||||
|
||||
# Create a comma-separated list for JSON schema validation
|
||||
META_JSON_FILES=""
|
||||
while read -r mod_path; do
|
||||
if [ -f "$mod_path/meta.json" ]; then
|
||||
if [ -z "$META_JSON_FILES" ]; then
|
||||
META_JSON_FILES="$mod_path/meta.json"
|
||||
else
|
||||
META_JSON_FILES="$META_JSON_FILES,$mod_path/meta.json"
|
||||
fi
|
||||
fi
|
||||
done < changed_mods.txt
|
||||
|
||||
echo "meta_json_files=$META_JSON_FILES" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Check Required Files
|
||||
if: steps.find-changed-mods.outputs.changed_mods_found == 'true'
|
||||
run: |
|
||||
while read -r mod_path; do
|
||||
if [ -d "$mod_path" ]; then
|
||||
MOD_DIR="$(basename "$mod_path")"
|
||||
|
||||
# Ensure description.md and meta.json exist
|
||||
if [ ! -f "$dir/description.md" ]; then
|
||||
if [ ! -f "$mod_path/description.md" ]; then
|
||||
echo "Error: Missing description.md in $MOD_DIR"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -f "$dir/meta.json" ]; then
|
||||
|
||||
if [ ! -f "$mod_path/meta.json" ]; then
|
||||
echo "Error: Missing meta.json in $MOD_DIR"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
done
|
||||
done < changed_mods.txt
|
||||
|
||||
- name: Check Thumbnail Dimensions
|
||||
if: steps.find-changed-mods.outputs.changed_mods_found == 'true'
|
||||
run: |
|
||||
for dir in mods/*/; do
|
||||
if [ -d "$dir" ]; then
|
||||
MOD_DIR="$(basename "$dir")"
|
||||
THUMBNAIL="$dir/thumbnail.jpg"
|
||||
|
||||
while read -r mod_path; do
|
||||
if [ -d "$mod_path" ]; then
|
||||
MOD_DIR="$(basename "$mod_path")"
|
||||
THUMBNAIL="$mod_path/thumbnail.jpg"
|
||||
|
||||
if [ -f "$THUMBNAIL" ]; then
|
||||
# Extract width and height using ImageMagick
|
||||
DIMENSIONS=$(identify -format "%wx%h" "$THUMBNAIL")
|
||||
WIDTH=$(echo "$DIMENSIONS" | cut -dx -f1)
|
||||
HEIGHT=$(echo "$DIMENSIONS" | cut -dx -f2)
|
||||
|
||||
|
||||
# Check if dimensions exceed 1920x1080
|
||||
if [ "$WIDTH" -gt 1920 ] || [ "$HEIGHT" -gt 1080 ]; then
|
||||
echo "Error: Thumbnail in $MOD_DIR exceeds the recommended size of 1920×1080."
|
||||
@@ -56,27 +93,35 @@ jobs:
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
done
|
||||
done < changed_mods.txt
|
||||
|
||||
- name: Validate JSON Format
|
||||
uses: github/super-linter@v4
|
||||
env:
|
||||
VALIDATE_JSON: true
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
if: steps.find-changed-mods.outputs.changed_mods_found == 'true'
|
||||
run: |
|
||||
# Use jq to validate each JSON file
|
||||
while read -r mod_path; do
|
||||
if [ -f "$mod_path/meta.json" ]; then
|
||||
if ! jq empty "$mod_path/meta.json" 2>/dev/null; then
|
||||
echo "Error: Invalid JSON format in $mod_path/meta.json"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
done < changed_mods.txt
|
||||
|
||||
- name: Validate meta.json Against Schema
|
||||
if: steps.find-changed-mods.outputs.changed_mods_found == 'true'
|
||||
uses: dsanders11/json-schema-validate-action@v1.2.0
|
||||
with:
|
||||
schema: "./schema/meta.schema.json"
|
||||
files: |
|
||||
mods/*/meta.json
|
||||
files: ${{ steps.find-changed-mods.outputs.meta_json_files }}
|
||||
|
||||
- name: Validate Download URLs
|
||||
if: steps.find-changed-mods.outputs.changed_mods_found == 'true'
|
||||
run: |
|
||||
for dir in mods/*/; do
|
||||
if [ -d "$dir" ]; then
|
||||
MOD_DIR="$(basename "$dir")"
|
||||
META_JSON="$dir/meta.json"
|
||||
while read -r mod_path; do
|
||||
if [ -d "$mod_path" ]; then
|
||||
MOD_DIR="$(basename "$mod_path")"
|
||||
META_JSON="$mod_path/meta.json"
|
||||
|
||||
# Check if downloadURL exists and is not empty
|
||||
DOWNLOAD_URL=$(jq -r '.downloadURL // empty' "$META_JSON")
|
||||
@@ -91,14 +136,14 @@ jobs:
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
done < changed_mods.txt
|
||||
|
||||
review-and-approve:
|
||||
needs: validate # This job will only run after 'validate' completes successfully.
|
||||
runs-on: ubuntu-latest
|
||||
environment:
|
||||
name: mod-review # This is the environment you created earlier.
|
||||
steps:
|
||||
- name: Await Approval from Maintainers
|
||||
run: echo "Waiting for manual approval by maintainers..."
|
||||
needs: validate # This job will only run after 'validate' completes successfully.
|
||||
runs-on: ubuntu-latest
|
||||
environment:
|
||||
name: mod-review # This is the environment you created earlier.
|
||||
steps:
|
||||
- name: Await Approval from Maintainers
|
||||
run: echo "Waiting for manual approval by maintainers..."
|
||||
|
||||
|
||||
50
.github/workflows/update-mod-versions.yml
vendored
Normal file
@@ -0,0 +1,50 @@
|
||||
name: Update Mod Versions
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 * * * *' # Run every hour
|
||||
workflow_dispatch: # Allow manual triggers
|
||||
|
||||
jobs:
|
||||
update-versions:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
token: ${{ secrets.PAT_TOKEN }} # Use PAT for checkout
|
||||
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: '3.10'
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install requests
|
||||
|
||||
- name: Update mod versions
|
||||
run: |
|
||||
python .github/scripts/update_mod_versions.py
|
||||
|
||||
- name: Commit and push changes
|
||||
run: |
|
||||
git config --global user.name 'Version Update Bot'
|
||||
git config --global user.email 'bot@noreply.github.com'
|
||||
|
||||
if [[ $(git status --porcelain) ]]; then
|
||||
COMMIT_MSG="Auto-update mod versions"
|
||||
if [ -f commit_message.txt ]; then
|
||||
COMMIT_MSG=$(cat commit_message.txt)
|
||||
fi
|
||||
|
||||
git add mods/*/meta.json
|
||||
git commit -m "$COMMIT_MSG"
|
||||
# Using the PAT_TOKEN with the default token URL format
|
||||
git push
|
||||
else
|
||||
echo "No changes to commit"
|
||||
fi
|
||||
|
||||
12
README.md
@@ -35,17 +35,23 @@ This file stores essential metadata in JSON format. **Make sure you adhere to th
|
||||
"categories": ["Content"],
|
||||
"author": "Joe Mama",
|
||||
"repo": "https://github.com/joemama/extended-cards",
|
||||
"downloadURL": "https://github.com/joemama/extended-cards/releases/latest/extended-cards.tar.gz"
|
||||
"downloadURL": "https://github.com/joemama/extended-cards/releases/latest/extended-cards.tar.gz",
|
||||
"folderName": "ExtendedCards",
|
||||
"version": "1.0.0",
|
||||
"automatic-version-check": true
|
||||
}
|
||||
|
||||
```
|
||||
- **title**: The name of your mod.
|
||||
- **requires-steamodded**: If your mod requires the [Steamodded](https://github.com/Steamodded/smods) mod loader, set this to `true`.
|
||||
- **requires-talisman**: If your mod requires the [Talisman](https://github.com/MathIsFun0/Talisman) mod, set this to `true`.
|
||||
- **categories**: Must be of `Content`, `Joker`, `Quality of Life`, `Technical`, `Miscellaneous`, `Resource Packs` or `API`.
|
||||
- *requires-talisman*: (*Optional*) If your mod requires the [Talisman](https://github.com/MathIsFun0/Talisman) mod, set this to `true`.
|
||||
- **categories**: Must contain at least one of `Content`, `Joker`, `Quality of Life`, `Technical`, `Miscellaneous`, `Resource Packs` or `API`.
|
||||
- **author**: Your chosen username or handle.
|
||||
- **repo**: A link to your mod's repository.
|
||||
- **downloadURL**: A direct link to the latest version of your released mod. (Can be same as `repo` if no separate download link exists.)
|
||||
- *folderName*: (*Optional*) The name for the mod's install folder. This must not contain characters `<` `>` `:` `"` `/` `\` `|` `?` `*`
|
||||
- *version*: (*Optional*, but **recommended**, if `automatic-version-check` disabled) The latest version of your mod.
|
||||
- *automatic-version-check*: (*Optional*, but **recommended**) Gets the latest release from your mod's repository and updates the `version` field. If there is no release, it will check the latest commit. Set this parameter to `true`, to enable this feature. (Note: the index updates every hour)
|
||||
|
||||
### 3. thumbnail.jpg (Optional)
|
||||
If included, this image will appear alongside your mod in the index. Maximum and recommended size is 1920x1080 pixels.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Balajeweled
|
||||
A resource pack that replaces the playing cards' suits into gems from the Bejeweled series.
|
||||
|
||||
As of now, only the numbered cards of all suits are changed, along with some enhancements.
|
||||
As of v0.1.2, the face cards had their letters and suit icons changed, to better align with the other cards.
|
||||
|
||||
**REQUIRES STEAMODDED**
|
||||
|
||||
@@ -1,9 +1,13 @@
|
||||
{
|
||||
"title": "Balajeweled",
|
||||
"requires-steamodded": true,
|
||||
"requires-talisman": false,
|
||||
"categories": ["Resource Packs"],
|
||||
"author": "ARandomTank7",
|
||||
"repo": "https://github.com/ARandomTank7/Balajeweled",
|
||||
"downloadURL": "https://github.com/ARandomTank7/Balajeweled/releases/latest/download/Balajeweled.zip"
|
||||
}
|
||||
"title": "Balajeweled",
|
||||
"requires-steamodded": true,
|
||||
"requires-talisman": false,
|
||||
"categories": [
|
||||
"Resource Packs"
|
||||
],
|
||||
"author": "ARandomTank7",
|
||||
"repo": "https://github.com/ARandomTank7/Balajeweled",
|
||||
"downloadURL": "https://github.com/ARandomTank7/Balajeweled/releases/latest/download/Balajeweled.zip",
|
||||
"automatic-version-check": true,
|
||||
"version": "v0.1.2"
|
||||
}
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
{
|
||||
"title": "Flush Hotkeys",
|
||||
"requires-steamodded": true,
|
||||
"requires-talisman": false,
|
||||
"categories": ["Quality of Life"],
|
||||
"author": "Agoraaa",
|
||||
"repo": "https://github.com/Agoraaa/FlushHotkeys",
|
||||
"downloadURL": "https://github.com/Agoraaa/FlushHotkeys/archive/refs/heads/main.zip"
|
||||
}
|
||||
|
||||
"title": "Flush Hotkeys",
|
||||
"requires-steamodded": true,
|
||||
"requires-talisman": false,
|
||||
"categories": [
|
||||
"Quality of Life"
|
||||
],
|
||||
"author": "Agoraaa",
|
||||
"repo": "https://github.com/Agoraaa/FlushHotkeys",
|
||||
"downloadURL": "https://github.com/Agoraaa/FlushHotkeys/archive/refs/heads/main.zip",
|
||||
"automatic-version-check": true,
|
||||
"version": "1.0.4b"
|
||||
}
|
||||
|
||||
@@ -1,9 +1,13 @@
|
||||
{
|
||||
"title": "Aikoyori Paint Job",
|
||||
"requires-steamodded": true,
|
||||
"requires-talisman": false,
|
||||
"categories": ["Resource Packs"],
|
||||
"author": "Aikoyori",
|
||||
"repo":"https://github.com/Aikoyori/Balatro_AikoPaintJob",
|
||||
"downloadURL": "https://github.com/Aikoyori/Balatro_AikoPaintJob/archive/refs/heads/main.zip"
|
||||
"title": "Aikoyori Paint Job",
|
||||
"requires-steamodded": true,
|
||||
"requires-talisman": false,
|
||||
"categories": [
|
||||
"Resource Packs"
|
||||
],
|
||||
"author": "Aikoyori",
|
||||
"repo": "https://github.com/Aikoyori/Balatro_AikoPaintJob",
|
||||
"downloadURL": "https://github.com/Aikoyori/Balatro_AikoPaintJob/archive/refs/heads/main.zip",
|
||||
"automatic-version-check": true,
|
||||
"version": "df146e1"
|
||||
}
|
||||
|
||||
6
mods/Astrapboy@Mistigris/description.md
Normal file
@@ -0,0 +1,6 @@
|
||||
Welcome to Mistigris! Inspired by the likes of Paperback, Ortalab and Maximus, this is a vanilla-style mod intended to bring new, spicy gimmicks and playstyles to Balatro, while ensuring there is still a sense of order and balance!
|
||||
> Requires Steamodded 1.0.0~BETA-0301a (or newer) and Lovely 0.7.1 (or newer)
|
||||
|
||||
* **[Join the Official Mistigris Discord!](<https://discord.gg/fjcBm5YmdN>)**
|
||||
Keep up with development and chat with others who might like the mod!
|
||||
|
||||
14
mods/Astrapboy@Mistigris/meta.json
Normal file
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"title": "Mistigris",
|
||||
"requires-steamodded": true,
|
||||
"requires-talisman": false,
|
||||
"categories": [
|
||||
"Content",
|
||||
"Joker"
|
||||
],
|
||||
"author": "astrapboy",
|
||||
"repo": "https://github.com/astrapboy/Mistigris",
|
||||
"downloadURL": "https://github.com/astrapboy/Mistigris/archive/refs/heads/main.zip",
|
||||
"automatic-version-check": true,
|
||||
"version": "84459aa"
|
||||
}
|
||||
@@ -1,9 +1,13 @@
|
||||
{
|
||||
"title": "Six Suits",
|
||||
"requires-steamodded": true,
|
||||
"requires-talisman": false,
|
||||
"categories": ["Content"],
|
||||
"author": "Aure",
|
||||
"repo":"https://github.com/Aurelius7309/SixSuits",
|
||||
"downloadURL": "https://github.com/Aurelius7309/SixSuits/archive/refs/heads/master.zip"
|
||||
}
|
||||
"title": "Six Suits",
|
||||
"requires-steamodded": true,
|
||||
"requires-talisman": false,
|
||||
"categories": [
|
||||
"Content"
|
||||
],
|
||||
"author": "Aure",
|
||||
"repo": "https://github.com/Aurelius7309/SixSuits",
|
||||
"downloadURL": "https://github.com/Aurelius7309/SixSuits/archive/refs/heads/master.zip",
|
||||
"automatic-version-check": true,
|
||||
"version": "v1.2.1"
|
||||
}
|
||||
|
||||
@@ -1,9 +1,15 @@
|
||||
{
|
||||
"title": "Bakery",
|
||||
"requires-steamodded": true,
|
||||
"requires-talisman": false,
|
||||
"categories": ["Content", "Joker", "Miscellaneous"],
|
||||
"author": "BakersDozenBagels",
|
||||
"repo": "https://github.com/BakersDozenBagels/BalatroBakery",
|
||||
"downloadURL": "https://github.com/BakersDozenBagels/BalatroBakery/archive/refs/heads/main.zip"
|
||||
"title": "Bakery",
|
||||
"requires-steamodded": true,
|
||||
"requires-talisman": false,
|
||||
"categories": [
|
||||
"Content",
|
||||
"Joker",
|
||||
"Miscellaneous"
|
||||
],
|
||||
"author": "BakersDozenBagels",
|
||||
"repo": "https://github.com/BakersDozenBagels/BalatroBakery",
|
||||
"downloadURL": "https://github.com/BakersDozenBagels/BalatroBakery/archive/refs/heads/main.zip",
|
||||
"automatic-version-check": true,
|
||||
"version": "f166a7c"
|
||||
}
|
||||
|
||||
@@ -1,9 +1,14 @@
|
||||
{
|
||||
"title": "Wilder",
|
||||
"requires-steamodded": true,
|
||||
"requires-talisman": false,
|
||||
"categories": ["Quality of Life", "Miscellaneous"],
|
||||
"author": "Sir. Gameboy",
|
||||
"repo": "https://github.com/Balin-P/Wilder",
|
||||
"downloadURL": "https://github.com/Balin-P/Wilder/releases/download/Release/Wilder.zip"
|
||||
}
|
||||
"title": "Wilder",
|
||||
"requires-steamodded": true,
|
||||
"requires-talisman": false,
|
||||
"categories": [
|
||||
"Quality of Life",
|
||||
"Miscellaneous"
|
||||
],
|
||||
"author": "Sir. Gameboy",
|
||||
"repo": "https://github.com/Balin-P/Wilder",
|
||||
"downloadURL": "https://github.com/Balin-P/Wilder/releases/download/Release/Wilder.zip",
|
||||
"automatic-version-check": true,
|
||||
"version": "Release"
|
||||
}
|
||||
|
||||
@@ -2,8 +2,14 @@
|
||||
"title": "Cardsauce",
|
||||
"requires-steamodded": true,
|
||||
"requires-talisman": false,
|
||||
"categories": ["Content", "Joker", "Miscellaneous"],
|
||||
"categories": [
|
||||
"Content",
|
||||
"Joker",
|
||||
"Miscellaneous"
|
||||
],
|
||||
"author": "BarrierTrio & Keku",
|
||||
"repo": "https://github.com/BarrierTrio/Cardsauce",
|
||||
"downloadURL": "https://github.com/BarrierTrio/Cardsauce/releases/latest/download/Cardsauce.zip"
|
||||
}
|
||||
"downloadURL": "https://github.com/BarrierTrio/Cardsauce/releases/latest/download/Cardsauce.zip",
|
||||
"automatic-version-check": true,
|
||||
"version": "Update1.3.4"
|
||||
}
|
||||
|
||||
@@ -1,9 +1,13 @@
|
||||
{
|
||||
"title": "Pampa Joker Pack",
|
||||
"requires-steamodded": true,
|
||||
"requires-talisman": false,
|
||||
"categories": ["Joker"],
|
||||
"author": "batabata3",
|
||||
"repo":"https://github.com/batabata3/balatro-pampa-joker-pack",
|
||||
"downloadURL":"https://github.com/batabata3/balatro-pampa-joker-pack/archive/refs/heads/main.zip"
|
||||
"title": "Pampa Joker Pack",
|
||||
"requires-steamodded": true,
|
||||
"requires-talisman": false,
|
||||
"categories": [
|
||||
"Joker"
|
||||
],
|
||||
"author": "batabata3",
|
||||
"repo": "https://github.com/batabata3/balatro-pampa-joker-pack",
|
||||
"downloadURL": "https://github.com/batabata3/balatro-pampa-joker-pack/archive/refs/heads/main.zip",
|
||||
"automatic-version-check": true,
|
||||
"version": "a"
|
||||
}
|
||||
|
||||
@@ -1,9 +1,13 @@
|
||||
{
|
||||
"title": "Math Blinds",
|
||||
"requires-steamodded": true,
|
||||
"requires-talisman": false,
|
||||
"categories": ["Content"],
|
||||
"author": "dvrp0",
|
||||
"repo":"https://github.com/Bazinga9000/MathBlinds",
|
||||
"downloadURL":"https://github.com/Bazinga9000/MathBlinds/archive/refs/heads/main.zip"
|
||||
"title": "Math Blinds",
|
||||
"requires-steamodded": true,
|
||||
"requires-talisman": false,
|
||||
"categories": [
|
||||
"Content"
|
||||
],
|
||||
"author": "dvrp0",
|
||||
"repo": "https://github.com/Bazinga9000/MathBlinds",
|
||||
"downloadURL": "https://github.com/Bazinga9000/MathBlinds/archive/refs/heads/main.zip",
|
||||
"automatic-version-check": true,
|
||||
"version": "8807e86"
|
||||
}
|
||||
|
||||
@@ -2,8 +2,12 @@
|
||||
"title": "Betmma Mods",
|
||||
"requires-steamodded": true,
|
||||
"requires-talisman": false,
|
||||
"categories": ["Content"],
|
||||
"categories": [
|
||||
"Content"
|
||||
],
|
||||
"author": "Betmma",
|
||||
"repo": "https://github.com/betmma/my_balatro_mods",
|
||||
"downloadURL": "https://github.com/betmma/my_balatro_mods/archive/refs/heads/main.zip"
|
||||
"downloadURL": "https://github.com/betmma/my_balatro_mods/archive/refs/heads/main.zip",
|
||||
"automatic-version-check": true,
|
||||
"version": "v3.0.1"
|
||||
}
|
||||
|
||||
@@ -2,8 +2,13 @@
|
||||
"title": "SystemClock",
|
||||
"requires-steamodded": false,
|
||||
"requires-talisman": false,
|
||||
"categories": ["Quality of Life", "Miscellaneous"],
|
||||
"categories": [
|
||||
"Quality of Life",
|
||||
"Miscellaneous"
|
||||
],
|
||||
"author": "Breezebuilder",
|
||||
"repo":"https://github.com/Breezebuilder/SystemClock",
|
||||
"downloadURL": "https://github.com/Breezebuilder/SystemClock/releases/download/v1.6.4/SystemClock-v1.6.4.zip"
|
||||
"repo": "https://github.com/Breezebuilder/SystemClock",
|
||||
"downloadURL": "https://github.com/Breezebuilder/SystemClock/releases/download/v1.6.4/SystemClock-v1.6.4.zip",
|
||||
"automatic-version-check": true,
|
||||
"version": "v1.6.4"
|
||||
}
|
||||
|
||||
15
mods/Coo29@Yippie/description.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# YippieMod
|
||||
An in progress mod for balatro, (hopefully) adding various things!
|
||||
|
||||
(Requires Steamodded, untested on versions prior to v1.0.0~ALPHA-1424a)
|
||||
|
||||
Currently added:
|
||||
3 Jokers
|
||||
|
||||
# Credits
|
||||
|
||||
Art: Coo29
|
||||
|
||||
Programming: Coo29
|
||||
|
||||
SFX: Coo29 (yippie sound modified from the original youtube video by Bavaklava)
|
||||
10
mods/Coo29@Yippie/meta.json
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"title": "Yippie",
|
||||
"requires-steamodded": true,
|
||||
"requires-talisman": false,
|
||||
"categories": ["Content", "Joker"],
|
||||
"author": "Coo29",
|
||||
"repo": "https://github.com/Coo29/YippieMod",
|
||||
"downloadURL": "https://github.com/Coo29/YippieMod/archive/refs/heads/main.zip"
|
||||
}
|
||||
|
||||
BIN
mods/Coo29@Yippie/thumbnail.jpg
Normal file
|
After Width: | Height: | Size: 183 KiB |
3
mods/DigitalDetective47@NextAntePreview/description.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# Next Ante Preview
|
||||
|
||||
Shows a preview of the next ante on the Boss Blind's cash out screen, so that you don't have to always click Run Info after going into the shop.
|
||||
9
mods/DigitalDetective47@NextAntePreview/meta.json
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"title": "Next Ante Preview",
|
||||
"requires-steamodded": true,
|
||||
"requires-talisman": false,
|
||||
"categories": ["Quality of Life"],
|
||||
"author": "DigitalDetective47",
|
||||
"repo": "https://github.com/DigitalDetective47/next-ante-preview",
|
||||
"downloadURL": "https://github.com/DigitalDetective47/next-ante-preview/archive/refs/heads/main.zip"
|
||||
}
|
||||
BIN
mods/DigitalDetective47@NextAntePreview/thumbnail.jpg
Normal file
|
After Width: | Height: | Size: 184 KiB |
3
mods/HuyTheKiller@SauKhongHuDecks/description.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# SauKhongHuDecks 🐛
|
||||
This mod aims to add several decks dedicated to SauKhongHu's channel.
|
||||
You can still try this mod without consequences... or is it?
|
||||
9
mods/HuyTheKiller@SauKhongHuDecks/meta.json
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"title": "SauKhongHuDecks",
|
||||
"requires-steamodded": true,
|
||||
"requires-talisman": false,
|
||||
"categories": ["Content"],
|
||||
"author": "HuyTheKiller",
|
||||
"repo": "https://github.com/HuyTheKiller/SauKhongHuDecks",
|
||||
"downloadURL": "https://github.com/HuyTheKiller/SauKhongHuDecks/archive/refs/heads/main.zip"
|
||||
}
|
||||
BIN
mods/HuyTheKiller@SauKhongHuDecks/thumbnail.jpg
Normal file
|
After Width: | Height: | Size: 99 KiB |
@@ -4,6 +4,6 @@
|
||||
"requires-talisman": false,
|
||||
"categories": ["Joker"],
|
||||
"author": "itayfeder",
|
||||
"repo":"https://github.com/itayfeder/Fusion-Jokers",
|
||||
"downloadURL":"https://github.com/itayfeder/Fusion-Jokers/archive/refs/heads/main.zip"
|
||||
"repo":"https://github.com/lshtech/Fusion-Jokers",
|
||||
"downloadURL":"https://github.com/lshtech/Fusion-Jokers/archive/refs/heads/main.zip"
|
||||
}
|
||||
|
||||
@@ -5,5 +5,6 @@
|
||||
"categories": ["Technical"],
|
||||
"author": "ItsFlowwey",
|
||||
"repo":"https://github.com/GauntletGames-2086/Flower-Pot",
|
||||
"downloadURL": "https://github.com/GauntletGames-2086/Flower-Pot/archive/refs/heads/master.zip"
|
||||
"downloadURL": "https://github.com/GauntletGames-2086/Flower-Pot/archive/refs/heads/master.zip",
|
||||
"folderName": "Flower-Pot"
|
||||
}
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
# CardSleeves
|
||||
A Steamodded+lovely Balatro Mod that adds Sleeves.
|
||||
A Balatro Mod that adds Sleeves using Steamodded + lovely.
|
||||
|
||||
Sleeves are run modifiers similar to decks. Any deck and sleeve can be combined.
|
||||
|
||||
CardSleeves adds 15 Sleeves based on the 15 vanilla decks by default, some of which have an unique and different effect when paired with their corresponding deck.
|
||||
CardSleeves adds 15 Sleeves based on the 15 vanilla decks by default, all of which have an unique and different effect when paired with their corresponding deck.
|
||||
|
||||
## Cross-mod content
|
||||
Other mods have the ability to add their own Sleeves!
|
||||
Some of these mods include
|
||||
[Cryptid](https://github.com/MathIsFun0/Cryptid),
|
||||
[Familiar](https://github.com/RattlingSnow353/Familiar),
|
||||
[MoreFluff](https://github.com/notmario/MoreFluff),
|
||||
[SDM_0's Stuff](https://github.com/SDM0/SDM_0-s-Stuff),
|
||||
[Balatro Drafting](https://github.com/spire-winder/Balatro-Draft),
|
||||
and [Pokermon](https://github.com/InertSteak/Pokermon).
|
||||
|
||||
CardSleeves also has support for [Galdur](https://github.com/Eremel/Galdur)'s improved new run menu.
|
||||
@@ -18,23 +18,23 @@ CardSleeves also has support for [Galdur](https://github.com/Eremel/Galdur)'s im
|
||||
## Exact descriptions
|
||||
| Sleeve | Base effect | Unique effect |
|
||||
|------------------|--------------------------------------------------------|------------------------------------------------------------------------|
|
||||
| Red Sleeve | +1 discards | none |
|
||||
| Blue Sleeve | +1 hands | none |
|
||||
| Yellow Sleeve | +$10 | none |
|
||||
| Green Sleeve | +$1 per remaining hand/discard | none |
|
||||
| Black Sleeve | +1 joker slots, -1 hands | +1 joker slots, -1 discards |
|
||||
| Red Sleeve | +1 discard | +1 discard, -1 hand |
|
||||
| Blue Sleeve | +1 hand | +1 hand, -1 discard |
|
||||
| Yellow Sleeve | +$10 | Seed Money Voucher |
|
||||
| Green Sleeve | +$1 per remaining hand/discard | Can go up to -$2 in debt for every hand and discard |
|
||||
| Black Sleeve | +1 joker slot, -1 hand | +1 joker slot, -1 discard |
|
||||
| Magic Sleeve | Crystal Ball Voucher, 2 Fools | Omen Globe Voucher |
|
||||
| Nebula Sleeve | Telescope Voucher, -1 consumable slot | Observatory Voucher |
|
||||
| Ghost Sleeve | Spectral cards appear in shop, Hex card | Spectrals appear more often in shop, Spectral pack size increases by 2 |
|
||||
| Abandoned Sleeve | No Face Cards in starting deck | Face Cards never appear |
|
||||
| Checkered Sleeve | 26 Spades and 26 Hearts in starting deck | Only Spades and Hearts appear |
|
||||
| Zodiac Sleeve | Tarot Merchant, Planet Merchant and Overstock Vouchers | Arcana/Celestial pack size increases by 2 |
|
||||
| Painted Sleeve | +2 hand size, -1 joker slots | none |
|
||||
| Painted Sleeve | +2 hand size, -1 joker slot | +1 card selection limit, -1 joker slot |
|
||||
| Anaglyph Sleeve | Double Tag after each Boss Blind | Double Tag after each Small/Big Blind |
|
||||
| Plasma Sleeve | Balance chips/mult, X2 base Blind size | Balance prices in shop |
|
||||
| Erratic Sleeve | All ranks/suits in starting deck are randomized | Starting Hands/Discards/Dollars/Joker slots are randomized between 3-6 |
|
||||
|
||||
## Credits
|
||||
Big thanks to Sable for the idea and all the art, and the balatro modding community for helping out with the lua code.
|
||||
# Credits
|
||||
Big thanks to Sable for the original idea and the original art, all the cool people who helped translate, and the amazing balatro modding community for helping out with the lua code.
|
||||
|
||||
Any suggestions, improvements or bugs are welcome and can be submitted through Github's Issues, or on the Balatro Discord [Thread](https://discord.com/channels/1116389027176787968/1279246553931976714).
|
||||
|
||||
@@ -2,5 +2,4 @@
|
||||
A playing card resource pack that changes the design of cards to use Rain World's characters and karma system.
|
||||
|
||||
## Dependencies
|
||||
- Steammodded v1.0.0~ALPHA-1310b or higher
|
||||
- [NOTE] Any version of Steammodded with DeckSkin API support may work, but this is the specific version the mod was designed on.
|
||||
- Steamodded (>=1.0.0~ALPHA-1404b) or higher
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"requires-steamodded": true,
|
||||
"requires-talisman": false,
|
||||
"categories": ["Resource Packs"],
|
||||
"author": "LawyerRed",
|
||||
"author": "LawyerRed & SpomJ",
|
||||
"repo": "https://github.com/LawyerRed01/RW-Karma-Cards",
|
||||
"downloadURL": "https://github.com/LawyerRed01/RW-Karma-Cards/archive/refs/heads/main.zip"
|
||||
}
|
||||
|
||||
5
mods/Lucky6@LuckyLegendsI/description.md
Normal file
@@ -0,0 +1,5 @@
|
||||
### Lucky6's
|
||||
# Lucky Legends
|
||||
### Volume I
|
||||
|
||||
15 new Legendary Jokers, a new booster pack type, new deck, and a new challenge!
|
||||
9
mods/Lucky6@LuckyLegendsI/meta.json
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"title": "Lucky Legends I",
|
||||
"requires-steamodded": true,
|
||||
"requires-talisman": false,
|
||||
"categories": ["Content"],
|
||||
"author": "Lucky6",
|
||||
"repo": "https://github.com/MamiKeRiko/luckylegends",
|
||||
"downloadURL": "https://github.com/MamiKeRiko/luckylegends/archive/refs/heads/main.zip"
|
||||
}
|
||||
BIN
mods/Lucky6@LuckyLegendsI/thumbnail.jpg
Normal file
|
After Width: | Height: | Size: 797 KiB |
@@ -1,4 +1,4 @@
|
||||
# Cryptid
|
||||
**Cryptid** is a Balatro mod that disregards the notion of game balance, adding various overpowered content for the player to use, and various difficult challenges to face.
|
||||
|
||||
### [Official Discord](https://discord.gg/unbalanced)
|
||||
### [Official Discord](https://discord.gg/cryptid)
|
||||
|
||||
@@ -2,8 +2,13 @@
|
||||
"title": "Cryptid",
|
||||
"requires-steamodded": true,
|
||||
"requires-talisman": true,
|
||||
"categories": ["Content"],
|
||||
"categories": [
|
||||
"Content"
|
||||
],
|
||||
"author": "MathIsFun0",
|
||||
"repo":"https://github.com/MathIsFun0/Cryptid",
|
||||
"downloadURL": "https://github.com/MathIsFun0/Cryptid/archive/refs/heads/main.zip"
|
||||
"repo": "https://github.com/MathIsFun0/Cryptid",
|
||||
"downloadURL": "https://github.com/MathIsFun0/Cryptid/archive/refs/heads/main.zip",
|
||||
"folderName": "Cryptid",
|
||||
"automatic-version-check": true,
|
||||
"version": "v0.5.5"
|
||||
}
|
||||
|
||||
@@ -5,5 +5,6 @@
|
||||
"categories": ["API", "Technical", "Quality of Life"],
|
||||
"author": "MathIsFun0",
|
||||
"repo":"https://github.com/MathIsFun0/Talisman",
|
||||
"downloadURL": "https://github.com/MathIsFun0/Talisman/releases/latest/download/Talisman.zip"
|
||||
"downloadURL": "https://github.com/MathIsFun0/Talisman/releases/latest/download/Talisman.zip",
|
||||
"folderName": "Talisman"
|
||||
}
|
||||
|
||||
@@ -5,5 +5,6 @@
|
||||
"categories": ["Miscellaneous"],
|
||||
"author": "MathIsFun0",
|
||||
"repo":"https://github.com/MathIsFun0/Trance",
|
||||
"downloadURL": "https://github.com/MathIsFun0/Trance/archive/refs/heads/main.zip"
|
||||
"downloadURL": "https://github.com/MathIsFun0/Trance/archive/refs/heads/main.zip",
|
||||
"folderName": "Trance"
|
||||
}
|
||||
|
||||
23
mods/Nyoxide@DeckCreator/description.md
Normal file
@@ -0,0 +1,23 @@
|
||||
# Deck Creator
|
||||
|
||||
Deck Creator is a tool for Balatro that allows users to create, save, load, and even share custom decks.
|
||||
|
||||
## Requirements
|
||||
|
||||
- Balatro 1.0.1o
|
||||
- Steamodded v1.0.0
|
||||
|
||||
## How to Use
|
||||
|
||||
- Click on the "Mods" button on the main menu
|
||||
- Click on "Deck Creator"
|
||||
- Click on "Config"
|
||||
- Click on "Create Deck"
|
||||
- Choose all the options you would like. Options that are not changed will be defaulted to the normal default game options.
|
||||
- Head back to the "General" tab when you're done, and click "Save Deck"
|
||||
- The deck will be saved to a file called "CustomDecks.txt" under this mod's folder in another subdirectory.
|
||||
- If you would like to share your deck list with anyone, all they need to do is copy and paste your CustomDecks.txt file and place it into the folder in their Mods directory. This mod will detect all .txt files in there and merge all the deck lists together and load all decks into the game.
|
||||
|
||||
## Contributing
|
||||
|
||||
This project is open for contribution. Please, feel free to open a merge request to do so.
|
||||
9
mods/Nyoxide@DeckCreator/meta.json
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"title": "Deck Creator",
|
||||
"requires-steamodded": true,
|
||||
"requires-talisman": false,
|
||||
"categories": ["Technical"],
|
||||
"author": "Nyoxide",
|
||||
"repo":"https://github.com/adambennett/Balatro-DeckCreator",
|
||||
"downloadURL": "https://github.com/adambennett/Balatro-DeckCreator/releases/download/v1.2.2/DeckCreator.zip"
|
||||
}
|
||||
BIN
mods/Nyoxide@DeckCreator/thumbnail.jpg
Normal file
|
After Width: | Height: | Size: 396 KiB |
5
mods/Revo@Revo'sVault/description.md
Normal file
@@ -0,0 +1,5 @@
|
||||
Revo's Vault
|
||||
|
||||
This mod is for anything i want to add in the game.
|
||||
|
||||
Currently there are 3 New Rarities (Printer, Chaos and Vaulted), 27 Printer Jokers with their own decks , 6 Chaos Jokers, 7 Vaulted Jokers 61 normal jokers for a total of 100 jokers, 13 new enhancements, 2 new tarots, 3 new spectral cards,2 new consumable types with a total of 25 custom consumables, 1 new seal, 2 new tags and 1 new booster pack!
|
||||
9
mods/Revo@Revo'sVault/meta.json
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"title": "Revo's Vault",
|
||||
"requires-steamodded": true,
|
||||
"requires-talisman": false,
|
||||
"categories": ["Content"],
|
||||
"author": "CodeRevo",
|
||||
"repo": "https://github.com/Cdrvo/Revos-Vault---Balatro-Mod",
|
||||
"downloadURL": "https://github.com/Cdrvo/Revos-Vault---Balatro-Mod/archive/refs/heads/main.zip"
|
||||
}
|
||||
BIN
mods/Revo@Revo'sVault/thumbnail.jpg
Normal file
|
After Width: | Height: | Size: 1.3 MiB |
@@ -5,5 +5,5 @@
|
||||
"categories": ["Miscellaneous"],
|
||||
"author": "Riv_Falcon",
|
||||
"repo": "https://github.com/RivFalcon/MultiTextBox",
|
||||
"downloadURL": "https://github.com/RivFalcon/MultiTextBox/archive/latest/MultiTextBox.tar.gz"
|
||||
"downloadURL": "https://github.com/RivFalcon/MultiTextBox/archive/refs/heads/master.zip"
|
||||
}
|
||||
|
||||
12
mods/SDM0@SDM_0-s-Stuff/description.md
Normal file
@@ -0,0 +1,12 @@
|
||||
# SDM_0's Stuff
|
||||
|
||||
A Balatro mod that adds (as of now) 37 Jokers, 3 Consumables, 9 Decks and 5 Challenges to the game, made by SDM_0 (duh)
|
||||
|
||||
|
||||
## Installation
|
||||
- Requires [Steamodded](https://github.com/Steamopollys/Steamodded/) v1.0.0
|
||||
|
||||
## Extra mod content
|
||||
- [CardSleeves](https://github.com/larswijn/CardSleeves): SDM_0's Stuff deck effect can be used as card sleeves
|
||||
- [JokerDisplay](https://github.com/nh6574/JokerDisplay): SDM_0's Stuff jokers have JokerDisplay compatibility
|
||||
- [Dimserenes' Modpack](https://github.com/Dimserene/Dimserenes-Modpack): Frontier Deck
|
||||
9
mods/SDM0@SDM_0-s-Stuff/meta.json
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"title": "SDM_0's Stuff",
|
||||
"requires-steamodded": true,
|
||||
"requires-talisman": false,
|
||||
"categories": [ "Content", "Joker" ],
|
||||
"author": "SDM0",
|
||||
"repo": "https://github.com/SDM0/SDM_0-s-Stuff",
|
||||
"downloadURL": "https://github.com/SDM0/SDM_0-s-Stuff/archive/refs/heads/main.zip"
|
||||
}
|
||||
10
mods/StarletDevil@AzzysJokers/description.md
Normal file
@@ -0,0 +1,10 @@
|
||||
# Azazel's Jokers!
|
||||
Adds 60 New Jokers each with (mostly) unique effects!
|
||||
|
||||
This mod is geared towards fun a bit more than game balance, so you might be finding yourself winning quite a bit!
|
||||
|
||||
There are also 3 new Decks and a new Challenge to try out!
|
||||
|
||||
**Requires Steamodded**
|
||||
|
||||
Not compatible with Talisman and may not be compatible with other major mods.
|
||||
9
mods/StarletDevil@AzzysJokers/meta.json
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"title": "Azazel's Jokers",
|
||||
"requires-steamodded": true,
|
||||
"requires-talisman": false,
|
||||
"categories": ["Content", "Joker"],
|
||||
"author": "Starlet Devil",
|
||||
"repo": "https://github.com/AstrumNativus/AzzysJokers",
|
||||
"downloadURL": "https://github.com/AstrumNativus/AzzysJokers/archive/refs/tags/v1.2.2.zip"
|
||||
}
|
||||
BIN
mods/StarletDevil@AzzysJokers/thumbnail.jpg
Normal file
|
After Width: | Height: | Size: 39 KiB |
26
mods/Tucaonormal@LastStand/description.md
Normal file
@@ -0,0 +1,26 @@
|
||||
# Last Stand
|
||||
A mod that adds a Challenge Deck to the game Balatro. The name of this Challenge is a tribute to one of the most popular and comprehensively researched Mini-games in the acclaimed classic video game Plants vs. Zombies, and so are its peculiar rules which banned almost all ways of earning money and all ways for obtaining free stuffs.
|
||||
## Rules:
|
||||
### Custom Rules:
|
||||
All Blinds give no reward money
|
||||
Extra Hands no longer earn money
|
||||
Earn no Interest at end of round
|
||||
After defeating each Boss Blind, earn $10
|
||||
Cannot earn money through any other means (including selling cards)
|
||||
### Game Modifiers:
|
||||
Start with $250
|
||||
4 hands per round
|
||||
3 discards per round
|
||||
8 hand size
|
||||
5 Joker Slots
|
||||
2 Consumable Slots
|
||||
$5 base reroll cost
|
||||
## Restrictions:
|
||||
### Banned Cards:
|
||||
Seed Money, Money Tree, To the Moon, Rocket, Golden Joker, Satellite, Delayed Gratification, Business Card, Faceless Joker, To Do List, Golden Ticket, Matador, Cloud 9, Reserved Parking, Mail-in Rebate, Rough Gem, Chaos the Clown, Astronomer, The Hermit, Temperance, Talisman
|
||||
### Banned Tags:
|
||||
Investment Tag, Standard Tag, Charm Tag, Meteor Tag, Buffoon Tag, Handy Tag, Garbage Tag, Ethereal Tag, Coupon Tag, D6 Tag, Speed Tag, Economy Tag
|
||||
### Other:
|
||||
None
|
||||
## Deck:
|
||||
Standard
|
||||
9
mods/Tucaonormal@LastStand/meta.json
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"title": "Last Stand",
|
||||
"requires-steamodded": true,
|
||||
"requires-talisman": false,
|
||||
"categories": ["Content"],
|
||||
"author": "Tucaonormal",
|
||||
"repo": "https://github.com/Tucaonormal/LastStand",
|
||||
"downloadURL": "https://github.com/Tucaonormal/LastStand/archive/refs/heads/main.zip"
|
||||
}
|
||||
21
mods/UppedHealer8521@RiffRaffling/description.md
Normal file
@@ -0,0 +1,21 @@
|
||||
# Riff-Raffling
|
||||
A Balatro challenge mod by UppedHealer8521.
|
||||
|
||||
Uses Steamodded (incompatible with Balamod).
|
||||
|
||||
### Rules
|
||||
Start with negative eternal Riff-Raff.
|
||||
|
||||
No other ways of acquiring Jokers, limited ways of earning money.
|
||||
|
||||
### Rules
|
||||
No money at end of round, no shop jokers or buffoon packs.
|
||||
|
||||
### Banned Cards
|
||||
Jokers: Business Card, Egg, Faceless Joker, Golden Joker, Golden Ticket
|
||||
|
||||
Consumables: Ankh, Judgement, The Soul, Wraith
|
||||
|
||||
Tags: Buffoon, Foil, Holographic, Negative, Polychrome, Rare, Uncommon
|
||||
|
||||
Vouchers: Seed Money / Money Tree
|
||||
9
mods/UppedHealer8521@RiffRaffling/meta.json
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"title": "Riff-Raffling",
|
||||
"requires-steamodded": true,
|
||||
"requires-talisman": false,
|
||||
"categories": [ "Content" ],
|
||||
"author": "UppedHealer8521",
|
||||
"repo": "https://github.com/UppedHealer8521/Riff-Raffling",
|
||||
"downloadURL": "https://github.com/UppedHealer8521/Riff-Raffling/archive/refs/heads/main.zip"
|
||||
}
|
||||
BIN
mods/UppedHealer8521@RiffRaffling/thumbnail.jpg
Normal file
|
After Width: | Height: | Size: 34 KiB |
@@ -1,9 +1,13 @@
|
||||
{
|
||||
"title": "DebugPlus",
|
||||
"requires-steamodded": false,
|
||||
"requires-talisman": false,
|
||||
"categories": ["Technical"],
|
||||
"author": "WilsontheWolf",
|
||||
"repo":"https://github.com/WilsontheWolf/DebugPlus",
|
||||
"downloadURL": "https://github.com/WilsontheWolf/DebugPlus/releases/latest/download/DebugPlus.zip"
|
||||
}
|
||||
"title": "DebugPlus",
|
||||
"requires-steamodded": false,
|
||||
"requires-talisman": false,
|
||||
"categories": [
|
||||
"Technical"
|
||||
],
|
||||
"author": "WilsontheWolf",
|
||||
"repo": "https://github.com/WilsontheWolf/DebugPlus",
|
||||
"downloadURL": "https://github.com/WilsontheWolf/DebugPlus/releases/latest/download/DebugPlus.zip",
|
||||
"automatic-version-check": true,
|
||||
"version": "v1.4.1"
|
||||
}
|
||||
|
||||
6
mods/cassiepepsi@TDQDeck/description.md
Normal file
@@ -0,0 +1,6 @@
|
||||
# TDQDeck
|
||||
A playing card resource pack that changes the design of some face cards to use TDQ characters.
|
||||
|
||||
## Dependencies
|
||||
- Steammodded v1.0.0 or higher
|
||||
- [NOTE] Any version of Steammodded with DeckSkin API support may work.
|
||||
9
mods/cassiepepsi@TDQDeck/meta.json
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"title": "The Dragon Quest Deck",
|
||||
"requires-steamodded": true,
|
||||
"requires-talisman": false,
|
||||
"categories": ["Resource Packs"],
|
||||
"author": "cassiepepsi",
|
||||
"repo": "https://github.com/cloverpepsi/Balatro-TDQDeck",
|
||||
"downloadURL": "https://github.com/cloverpepsi/Balatro-TDQDeck/releases/download/v1.0.0/TDQ-Deck-main.zip"
|
||||
}
|
||||
BIN
mods/cassiepepsi@TDQDeck/thumbnail.png
Normal file
|
After Width: | Height: | Size: 132 KiB |
@@ -1,9 +1,13 @@
|
||||
{
|
||||
"title": "Too Many Jokers",
|
||||
"requires-steamodded": true,
|
||||
"requires-talisman": false,
|
||||
"categories": ["Quality of Life"],
|
||||
"author": "cg223",
|
||||
"repo":"https://github.com/cg-223/toomanyjokers",
|
||||
"downloadURL": "https://github.com/cg-223/toomanyjokers/archive/refs/heads/main.zip"
|
||||
}
|
||||
{
|
||||
"title": "Too Many Jokers",
|
||||
"requires-steamodded": true,
|
||||
"requires-talisman": false,
|
||||
"categories": [
|
||||
"Quality of Life"
|
||||
],
|
||||
"author": "cg223",
|
||||
"repo": "https://github.com/cg-223/toomanyjokers",
|
||||
"downloadURL": "https://github.com/cg-223/toomanyjokers/archive/refs/heads/main.zip",
|
||||
"automatic-version-check": true,
|
||||
"version": "262e4b2"
|
||||
}
|
||||
|
||||
@@ -5,5 +5,5 @@
|
||||
"categories": ["Quality of Life"],
|
||||
"author": "stupxd",
|
||||
"repo": "https://github.com/stupxd/Cartomancer",
|
||||
"downloadURL": "https://github.com/stupxd/Cartomancer/releases/download/v.4.10/Cartomancer-v.4.10-fix-fix.zip"
|
||||
}
|
||||
"downloadURL": "https://github.com/stupxd/Cartomancer/releases/download/v.4.11/Cartomancer-v.4.11.zip"
|
||||
}
|
||||
1
mods/termisaal@MainMenuTweaks/description.md
Normal file
@@ -0,0 +1 @@
|
||||
Minor changes to the Main Menu Screen.
|
||||
9
mods/termisaal@MainMenuTweaks/meta.json
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"title": "Main Menu Tweaks",
|
||||
"requires-steamodded": false,
|
||||
"requires-talisman": false,
|
||||
"categories": ["Quality of Life"],
|
||||
"author": "termisaal & seven_kd_irl",
|
||||
"repo": "https://github.com/Catzzadilla/Main-Menu-Tweaks/",
|
||||
"downloadURL": "https://github.com/Catzzadilla/Main-Menu-Tweaks/archive/refs/heads/main.zip"
|
||||
}
|
||||
BIN
mods/termisaal@MainMenuTweaks/thumbnail.jpg
Normal file
|
After Width: | Height: | Size: 41 KiB |
1
mods/theAstra@Maximus/description.md
Normal file
@@ -0,0 +1 @@
|
||||
A vanilla-inspired mod that adds many new ideas to Balatro, ranging from new Jokers, Decks, Vouchers, and more! This mod is still very much WIP, so expect things to break!!!
|
||||
10
mods/theAstra@Maximus/meta.json
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"title": "Maximus",
|
||||
"requires-steamodded": true,
|
||||
"requires-talisman": true,
|
||||
"categories": ["Content"],
|
||||
"author": "theAstra, Maxiss02",
|
||||
"repo": "https://github.com/the-Astra/Maximus",
|
||||
"downloadURL": "https://github.com/the-Astra/Maximus/archive/refs/heads/main.zip"
|
||||
}
|
||||
|
||||
BIN
mods/theAstra@Maximus/thumbnail.jpg
Normal file
|
After Width: | Height: | Size: 282 KiB |
@@ -1,9 +1,13 @@
|
||||
{
|
||||
"title": "Colored Suit Tarots",
|
||||
"requires-steamodded": true,
|
||||
"requires-talisman": false,
|
||||
"categories": ["Resource Packs"],
|
||||
"author": "ywssp",
|
||||
"repo":"https://github.com/ywssp/Balatro-ColoredSuitTarots",
|
||||
"downloadURL": "https://github.com/ywssp/Balatro-ColoredSuitTarots/archive/refs/heads/main.zip"
|
||||
"title": "Colored Suit Tarots",
|
||||
"requires-steamodded": true,
|
||||
"requires-talisman": false,
|
||||
"categories": [
|
||||
"Resource Packs"
|
||||
],
|
||||
"author": "ywssp",
|
||||
"repo": "https://github.com/ywssp/Balatro-ColoredSuitTarots",
|
||||
"downloadURL": "https://github.com/ywssp/Balatro-ColoredSuitTarots/archive/refs/heads/main.zip",
|
||||
"automatic-version-check": true,
|
||||
"version": "v4.1.1"
|
||||
}
|
||||
|
||||
@@ -31,6 +31,16 @@
|
||||
"downloadURL": {
|
||||
"type": "string",
|
||||
"format": "uri"
|
||||
},
|
||||
"folderName": {
|
||||
"type": "string",
|
||||
"pattern": "^[^<>:\"/\\|?*]+$"
|
||||
},
|
||||
"version": {
|
||||
"type": "string"
|
||||
},
|
||||
"automatic-version-check": {
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"required": ["title", "requires-steamodded", "categories", "author", "repo", "downloadURL"]
|
||||
|
||||