1
0

Merge branch 'skyline69:main' into main

This commit is contained in:
Coo
2025-04-24 00:59:12 -04:00
committed by GitHub
238 changed files with 2814 additions and 695 deletions

5
.github/scripts/requirements.lock vendored Normal file
View File

@@ -0,0 +1,5 @@
certifi==2025.1.31
charset-normalizer==3.4.1
idna==3.10
requests==2.32.3
urllib3==2.4.0

1
.github/scripts/requirements.txt vendored Normal file
View File

@@ -0,0 +1 @@
requests

244
.github/scripts/update_mod_versions.py vendored Executable file
View File

@@ -0,0 +1,244 @@
#!/usr/bin/env python3
import json
import os
import re
import sys
import time
from datetime import datetime
from enum import Enum
from pathlib import Path
import requests
# 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.removesuffix('.git')
return owner, repo
return None, None
VersionSource = Enum("VersionSource", [
("RELEASE_TAG", "release"),
("HEAD", "commit"),
])
def get_version_string(source: Enum, owner, repo, start_timestamp, n = 1):
"""Get the version string from a given GitHub repo."""
if source is VersionSource.RELEASE_TAG:
url = f'https://api.github.com/repos/{owner}/{repo}/releases/latest'
else:
if not source is VersionSource.HEAD:
print(f"UNIMPLEMENTED(VersionSource): `{source}`,\nfalling back to `HEAD`")
source = VersionSource.HEAD
url = f'https://api.github.com/repos/{owner}/{repo}/commits'
try:
response = requests.get(url, headers=HEADERS)
api_rate_limit = int(response.headers.get('x-ratelimit-limit'))
api_rate_usage = int(response.headers.get('x-ratelimit-used'))
api_rate_remaining = int(response.headers.get('x-ratelimit-remaining'))
api_reset_timestamp = int(response.headers.get('x-ratelimit-reset'))
api_resource = response.headers.get('x-ratelimit-resource')
print(f"GitHub API ({api_resource}) calls: {api_rate_usage}/{api_rate_limit}")
if response.status_code == 404:
# Not found
return None
if response.status_code == 200:
data = response.json()
if source is VersionSource.RELEASE_TAG:
# Return name of latest tag
return data.get('tag_name')
if data and len(data) > 0:
# Return shortened commit hash (first 7 characters)
return data[0]['sha'][:7]
print(f"⚠️ Warning: unexpected response format for {source}s:\n{
json.dumps(data, indent=2, ensure_ascii=False)
}")
return
if api_rate_remaining == 0 or (
response.status_code == 403
and "rate limit exceeded" in response.text.lower()
):
print(f"GitHub API access is being rate limited!")
current_timestamp = int(time.time())
# Check if primary rate limit is okay
if api_rate_remaining > 0:
# Secondary rate limit hit, follow GitHub instructions
if 'retry-after' in response.headers:
wait_time = int(response.headers.get('retry-after')) + 5
print(f"Response retry-after {wait_time}s")
else:
# Start at 60 seconds and double wait time with each new attempt
print(f"Attempt {n}")
wait_time = 60 * pow(2, n - 1)
else:
api_reset_time = datetime.fromtimestamp(api_reset_timestamp).strftime('%H:%M:%S')
print(f"GitHub API rate limit resets at {api_reset_time}")
wait_time = api_reset_timestamp - current_timestamp + 5
# Wait only if the wait time would finish less than 1800 seconds (30 min) after program start time
if current_timestamp + wait_time - start_timestamp < 1800:
print(f"Waiting {wait_time} seconds until next attempt...")
time.sleep(wait_time)
n += 1
return get_version_string(source, owner, repo, start_timestamp, n) # Retry
else:
print(f"Next attempt in {wait_time} seconds, but Action run time would exceed 1800 seconds - Stopping...")
sys.exit(1)
else:
print(f"Error fetching {source}s: HTTP {response.status_code} - {response.text}")
return None
except Exception as e:
print(f"Exception while fetching {source}s: {str(e)}")
return None
def process_mods(start_timestamp):
"""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:
if mod := process_mod(start_timestamp, mod_dir.name, mod_dir / 'meta.json'):
updated_mods.append(mod)
except Exception as e:
print(f"❌ Error processing {mod_dir.name}: {str(e)}")
return updated_mods
def process_mod(start_timestamp, name, meta_file):
if not meta_file.exists():
return
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'):
return
print(f"Processing {name}...")
repo_url = meta.get('repo')
if not repo_url:
print(f"⚠️ Warning: Mod {name} has automatic-version-check but no repo URL")
return
owner, repo = extract_repo_info(repo_url)
if not owner or not repo:
print(f"⚠️ Warning: Could not extract repo info from {repo_url}")
return
print(f"Checking GitHub repo: `{owner}/{repo}`")
# If download url links to latest head, use version of latest commit hash
download_url = meta.get('downloadURL')
new_version = None
if "/archive/refs/heads/" in download_url:
print("Download URL links to HEAD, checking latest commit...")
source = VersionSource.HEAD
new_version = get_version_string(VersionSource.HEAD, owner, repo, start_timestamp)
else:
print("Checking releases for latest version tag...")
source = VersionSource.RELEASE_TAG
new_version = get_version_string(source, owner, repo, start_timestamp)
if not new_version:
print("No releases found, falling back to latest commit instead...")
source = VersionSource.HEAD
new_version = get_version_string(source, owner, repo, start_timestamp)
if not new_version:
print(f"⚠️ Warning: Could not determine version for {name}")
return
current_version = meta.get('version')
# Update version if it changed
if current_version == new_version:
print(f" No version change for {name} (current: {current_version})")
return
print(
f"✅ Updating {name} from {current_version} to {new_version} ({source})"
)
meta['version'] = new_version
if "/archive/refs/tags/" in download_url:
meta['downloadURL'] = f"{repo_url}/archive/refs/tags/{meta['version']}.zip"
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
return {
'name': meta.get('title', name),
'old_version': current_version,
'new_version': meta['version'],
'source': source
}
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__":
start_timestamp = int(time.time())
start_datetime = datetime.fromtimestamp(start_timestamp).strftime('%H:%M:%S')
print(f"🔄 Starting automatic mod version update at {start_datetime}...")
updated_mods = process_mods(start_timestamp)
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)

View File

@@ -14,20 +14,35 @@ jobs:
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: Use ImageMagick from cache
uses: awalsh128/cache-apt-pkgs-action@v1
with:
packages: imagemagick
version: 8:6.9.12.98+dfsg1-5.2build2
- name: Identify Changed Mods
id: find-changed-mods
run: |
# 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
# Get the list of files changed in the PR using GitHub API
API_RESPONSE=$(curl -s -X GET \
-H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
-H "Accept: application/vnd.github.v3+json" \
"https://api.github.com/repos/${{ github.repository }}/pulls/${{ github.event.pull_request.number }}/files")
# Use fallback method if API fails
if echo "$API_RESPONSE" | jq -e 'if type=="array" then true else false end' > /dev/null; then
echo "Using GitHub API method to find changed files"
echo "$API_RESPONSE" | jq -r '.[] | .filename' | grep -E '^mods/[^/]+/' | cut -d'/' -f1-2 | sort | uniq > changed_mods.txt
else
echo "Using git diff method as fallback"
# 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 using git diff
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
fi
# Check if any mods were found
if [ ! -s changed_mods.txt ]; then
echo "No mods were added or modified in this PR."
echo "changed_mods_found=false" >> $GITHUB_OUTPUT
@@ -38,19 +53,14 @@ jobs:
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
# Create a newline-separated list for JSON schema validation
META_JSON_FILES=$(while read -r mod_path; do
[ -f "$mod_path/meta.json" ] && echo "$mod_path/meta.json"
done < changed_mods.txt)
echo "meta_json_files<<EOF" >> $GITHUB_OUTPUT
echo "$META_JSON_FILES" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
- name: Check Required Files
if: steps.find-changed-mods.outputs.changed_mods_found == 'true'
@@ -73,7 +83,7 @@ jobs:
done < changed_mods.txt
- name: Check Thumbnail Dimensions
if: steps.find-changed-mods.outputs.changed_mods_found == 'true'
if: always() && steps.find-changed-mods.outputs.changed_mods_found == 'true'
run: |
while read -r mod_path; do
if [ -d "$mod_path" ]; then
@@ -81,8 +91,9 @@ jobs:
THUMBNAIL="$mod_path/thumbnail.jpg"
if [ -f "$THUMBNAIL" ]; then
# Extract width and height using ImageMagick
DIMENSIONS=$(identify -format "%wx%h" "$THUMBNAIL")
# Extract width and height using ImageMagick identify
# Using identify-im6.q16 directly as identify is a symlink that is not created by the cache restoration
DIMENSIONS=$(/usr/bin/identify-im6.q16 -format "%wx%h" "$THUMBNAIL")
WIDTH=$(echo "$DIMENSIONS" | cut -dx -f1)
HEIGHT=$(echo "$DIMENSIONS" | cut -dx -f2)
@@ -96,7 +107,7 @@ jobs:
done < changed_mods.txt
- name: Validate JSON Format
if: steps.find-changed-mods.outputs.changed_mods_found == 'true'
if: always() && steps.find-changed-mods.outputs.changed_mods_found == 'true'
run: |
# Use jq to validate each JSON file
while read -r mod_path; do
@@ -109,14 +120,14 @@ jobs:
done < changed_mods.txt
- name: Validate meta.json Against Schema
if: steps.find-changed-mods.outputs.changed_mods_found == 'true'
if: always() && 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: ${{ steps.find-changed-mods.outputs.meta_json_files }}
- name: Validate Download URLs
if: steps.find-changed-mods.outputs.changed_mods_found == 'true'
if: always() && steps.find-changed-mods.outputs.changed_mods_found == 'true'
run: |
while read -r mod_path; do
if [ -d "$mod_path" ]; then
@@ -146,4 +157,3 @@ jobs:
steps:
- name: Await Approval from Maintainers
run: echo "Waiting for manual approval by maintainers..."

View File

@@ -0,0 +1,51 @@
name: Update Mod Versions
on:
schedule:
- cron: '0 * * * *' # Run every hour
workflow_dispatch: # Allow manual triggers
jobs:
update-versions:
runs-on: ubuntu-latest
if: github.repository == 'skyline69/balatro-mod-index'
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.12'
cache: 'pip' # This enables pip caching
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r .github/scripts/requirements.lock
- name: Update mod versions
env:
GITHUB_TOKEN: ${{ github.token }}
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"
git push
else
echo "No changes to commit"
fi

175
.gitignore vendored
View File

@@ -1 +1,176 @@
.DS_Store
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# C extensions
*.so
# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
cover/
# Translations
*.mo
*.pot
# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal
# Flask stuff:
instance/
.webassets-cache
# Scrapy stuff:
.scrapy
# Sphinx documentation
docs/_build/
# PyBuilder
.pybuilder/
target/
# Jupyter Notebook
.ipynb_checkpoints
# IPython
profile_default/
ipython_config.py
# pyenv
# For a library or package, you might want to ignore these files since the code is
# intended to run in multiple environments; otherwise, check them in:
# .python-version
# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock
# UV
# Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
# This is especially recommended for binary packages to ensure reproducibility, and is more
# commonly ignored for libraries.
#uv.lock
# poetry
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
# This is especially recommended for binary packages to ensure reproducibility, and is more
# commonly ignored for libraries.
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
#poetry.lock
# pdm
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
#pdm.lock
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
# in version control.
# https://pdm.fming.dev/latest/usage/project/#working-with-version-control
.pdm.toml
.pdm-python
.pdm-build/
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
__pypackages__/
# Celery stuff
celerybeat-schedule
celerybeat.pid
# SageMath parsed files
*.sage.py
# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/
# Spyder project settings
.spyderproject
.spyproject
# Rope project settings
.ropeproject
# mkdocs documentation
/site
# mypy
.mypy_cache/
.dmypy.json
dmypy.json
# Pyre type checker
.pyre/
# pytype static type analyzer
.pytype/
# Cython debug symbols
cython_debug/
# PyCharm
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/
# Ruff stuff:
.ruff_cache/
# PyPI configuration file
.pypirc

View File

@@ -35,19 +35,25 @@ 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",
"folderName": "ExtendedCards"
"downloadURL": "https://github.com/joemama/extended-cards/releases/latest/extended-cards.zip",
"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*: (*Optional*) If your mod requires the [Talisman](https://github.com/MathIsFun0/Talisman) mod, set this to `true`.
- **requires-talisman**: 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 `<` `>` `:` `"` `/` `\` `|` `?` `*`
- **downloadURL**: A direct link to the latest version of your released mod. Using an automatic link to the [latest release](https://docs.github.com/en/repositories/releasing-projects-on-github/linking-to-releases) is preferred.
- *folderName*: (*Optional*) The name for the mod's install folder. This must be **unique**, and cannot contain characters `<` `>` `:` `"` `/` `\` `|` `?` `*`
- *version*: (*Optional*) The version number of the mod files available at `downloadURL`.
- *automatic-version-check*: (*Optional* but **recommended**) Set to `true` to let the Index automatically update the `version` field.
- Updates happen once every hour, by checking either your mod's latest Release **or** latest commit, depending on the `downloadURL`.
- Enable this option **only** if your `downloadURL` points to an automatically updating source, using a link to [releases/latest](https://docs.github.com/en/repositories/releasing-projects-on-github/linking-to-releases) (recommended), or a link to the [latest commit (HEAD)](https://docs.github.com/en/repositories/working-with-files/using-files/downloading-source-code-archives#source-code-archive-urls).
### 3. thumbnail.jpg (Optional)
If included, this image will appear alongside your mod in the index. Maximum and recommended size is 1920x1080 pixels.
@@ -90,4 +96,40 @@ Once your submission is reviewed and approved, your mod will be added to the Bal
---
Thanks for contributing to the **Balatro Mod Index** and helping the community grow!
## Submission Policy
All submissions must be safe, legal, and appropriate for a general audience. This means:
1. No mods containing malware or spyware.
2. No copyrighted content that is used without permission.
3. No hateful, discriminatory, or offensive material.
By submitting your own mod to the *Balatro Mod Index*, you are agreeing to allow your mod to be displayed in and redistributed by [Balatro Mod Manager](https://github.com/skyline69/balatro-mod-manager/).
If you would like your content to be removed from the *Balatro Mod Index* at any point, please create an [Issue](https://github.com/skyline69/balatro-mod-index/issues) or submit a [Pull Request](https://github.com/skyline69/balatro-mod-manager/pulls) with the relevant content deleted.
### Third-Party Submissions
Mods should ideally be submitted by their creators. If you would like to submit a mod on behalf of a mod's creator, please do so in a way that is considerate of the author, their creative works, and their time.
Mods will only be accepted on the Balatro Mod Index if they have been released under a redistribution-friendly license (such as GPL, MIT, MPL or similar), or if the mod's authors have given explicit and public permission.
It is strongly encouraged to ask for permission before submitting other's mods to the *Balatro Mod Index*, regardless of license.
**Before submitting mods created by other people:**
1. Check that the mod is **working** on the most current version of the game, and has not been **deprecated** or **abandoned**.
2. Check that the mod's **license** allows **redistribution** by third parties - otherwise, **ask permission** from the creator.
3. Check the mod's requirements for **Steamodded** and **Talisman**, along with any other dependencies that should be listed in the description.
4. Check if the mod requires a specific installation **folder name**, and set the `folderName` parameter accordingly.
5. Check that the mod doesn't have any other special or unusual **installation requirements**.
6. Check if the mod has any **promotional images** that might be suitable for use as a **thumbnail**.
When submitting a mod on behalf of someone else, please link to the latest **Release** whenever possible rather than the latest repository HEAD.
This helps to keep modded Balatro stable for more players, by only using tested releases instead of potentially untested in-development builds.
Thanks for contributing to the *Balatro Mod Index* and helping the community grow!

View File

@@ -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.2a"
}

View File

@@ -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": "076d296"
}

View File

@@ -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"
}

View File

@@ -0,0 +1,6 @@
# Vocalatro
Ever want your face cards to be anime girls? Now you can with Vocalatro!
Featuring very obscure virtual singers like Hatsune Miku, Kasane Teto, KAFU and not so singer Neru
and well known singers like Utane Uta, Kizuna Akari, and Elainor Forte!

View File

@@ -0,0 +1,14 @@
{
"title": "Vocalatro",
"requires-steamodded": true,
"requires-talisman": false,
"categories": [
"Resource Packs"
],
"author": "Aikoyori",
"repo": "https://github.com/Aikoyori/Vocalatro/",
"downloadURL": "https://github.com/Aikoyori/Vocalatro/archive/refs/heads/main.zip",
"folderName": "Vocalatro",
"automatic-version-check": true,
"version": "0cf7086"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

View File

@@ -1,5 +1,4 @@
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)
Mistigris is a brand new, Vanilla style mod designed to spice up Balatro with new gimmicks and playstyles, while still ensuring a sense of order and balance!
* **[Join the Official Mistigris Discord!](<https://discord.gg/fjcBm5YmdN>)**
Keep up with development and chat with others who might like the mod!

View File

@@ -1,9 +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"
}
{
"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/releases/latest/download/Mistigris.zip",
"automatic-version-check": true,
"version": "v0.4.1"
}

View File

@@ -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": "d2044ee"
}

View File

@@ -0,0 +1,10 @@
# (WIP)
Collabs-Reimagined
A balatro texture mod that applies each collab from "friends of Jimbo" to each respective suit
Current Collabs:
Among Us
Cyberpunk 2077
Dave the Diver
The Witcher
Vampire Survivors

View File

@@ -0,0 +1,14 @@
{
"title": "Collabs Reimagined",
"requires-steamodded": true,
"requires-talisman": false,
"categories": [
"Resource Packs"
],
"author": "Auto Watto & RS_Mind",
"repo": "https://github.com/AutoWatto/CollabsReimagined",
"downloadURL": "https://github.com/AutoWatto/CollabsReimagined/archive/refs/heads/main.zip",
"folderName": "CollabsReimagined",
"version": "89ebe04",
"automatic-version-check": true
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

View File

@@ -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": "5f89d04"
}

View File

@@ -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"
}

View File

@@ -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.4.1"
}

View File

@@ -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": "91c0618"
}

View File

@@ -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"
}

View File

@@ -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": "9f1673d"
}

View File

@@ -0,0 +1,24 @@
Prism is a content mod that aims to enrich the Balatro experience while maintaining the vanilla feel
# Content
The mod currently adds:
- A brand new Consumable type: Myth Cards
- Over 30 new Jokers
- New Enhancements and Seals
- New Decks with matching Card Sleeves (Requires [CardSlevees](https://github.com/larswijn/CardSleeves))
- And much more
You can see a more detailed list of additions in the mods [Wiki](https://balatromods.miraheze.org/wiki/Prism)
# Requirements
- [Steamodded](https://github.com/Steamopollys/Steamodded)
- [Lovely](https://github.com/ethangreen-dev/lovely-injector)
# Known Issues
- Using the mod together with Codex Arcanum will crash the game, using [Redux Arcanum](https://github.com/jumbocarrot0/Redux-Arcanum) instead fixes the issue
# Credits
- Chinese localization by 姓氏是个毛 and VisJoker
- Spanish localization by Frander
- Vietnamese localization by Shinosan

View File

@@ -0,0 +1,14 @@
{
"title": "Prism",
"requires-steamodded": true,
"requires-talisman": false,
"categories": [
"Content"
],
"author": "Blazingulag",
"repo": "https://github.com/blazingulag/Prism",
"downloadURL": "https://github.com/blazingulag/Prism/archive/refs/heads/main.zip",
"folderName": "Prism",
"automatic-version-check": true,
"version": "0b05bd1"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 967 KiB

View File

@@ -0,0 +1,5 @@
# Dismiss discovery alerts with a click!
DismissAlert makes it possible to dismiss the new discovery alert icons ( ! ) on the Main Menu, Pause menu and Collection menu with a single click<br>
- Clicking the icon on the main menu or in the pause menu will dismiss all alert icons and mark the contents of all categories as read<br>
- Clicking individual alert icons on the Collection page will only dismiss and mark the contents of that individual collection category<br>

View File

@@ -0,0 +1,14 @@
{
"title": "DismissAlert",
"requires-steamodded": false,
"requires-talisman": false,
"categories": [
"Quality of Life",
"Miscellaneous"
],
"author": "Breezebuilder",
"repo": "https://github.com/Breezebuilder/DismissAlert",
"downloadURL": "https://github.com/Breezebuilder/DismissAlert/releases/latest/download/DismissAlert.zip",
"automatic-version-check": true,
"version": "v1.0.0"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 341 KiB

View File

@@ -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.7.1/SystemClock-v1.7.1.zip",
"automatic-version-check": false,
"version": "v1.7.1"
}

View File

@@ -0,0 +1,18 @@
# Key Features
- Dark versions of:
- Playing Card Backs
- Tarot Cards
- Planet Cards
- Spectral Cards
- Card Backs
- All Jokers retextured to dark versions
- Splash screen and backgrounds darkened
- Custom suit colors
- Custom tag textures
- Custom booster pack textures
- Custom voucher textures
# How To Use
To use Balatro Dark Mode, you need to have **Malverk** installed. The pack contains two subpacks, a **Malverk** pack which contains the bulk of the textures and an **Extras** pack which contains small bits that are not supported by *Malverk*.

View File

@@ -0,0 +1,11 @@
{
"title": "Balatro Dark Mode",
"requires-steamodded": true,
"requires-talisman": false,
"categories": ["Resource Packs"],
"author": "Carroton",
"repo": "https://github.com/CarrotonMan/balatrodarkmode",
"downloadURL": "https://github.com/CarrotonMan/balatrodarkmode/releases/download/latest/balatroDarkMode.zip",
"folderName": "balatroDarkMode",
"version": "1.1.0"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 296 KiB

View File

@@ -1,10 +1,14 @@
{
"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"
}
{
"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",
"automatic-version-check": true,
"version": "bc91c0b"
}

View File

@@ -1,9 +1,13 @@
{
"title": "HD Balatro",
"requires-steamodded": true,
"requires-talisman": false,
"categories": ["Resource Packs"],
"author": "DDRitter",
"repo":"https://github.com/Eremel/HD-Balatro",
"downloadURL": "https://github.com/Eremel/HD-Balatro/archive/refs/heads/main.zip"
}
{
"title": "HD Balatro",
"requires-steamodded": true,
"requires-talisman": false,
"categories": [
"Resource Packs"
],
"author": "DDRitter",
"repo": "https://github.com/Eremel/HD-Balatro",
"downloadURL": "https://github.com/Eremel/HD-Balatro/archive/refs/heads/main.zip",
"automatic-version-check": true,
"version": "e96e8c9"
}

View File

@@ -1,9 +1,13 @@
{
"title": "Planet Nine",
"requires-steamodded": true,
"requires-talisman": false,
"categories": ["Resource Packs"],
"author": "DarkAutumn2618",
"repo":"https://github.com/DarkAutumn2618/balatro-planetnine",
"downloadURL": "https://github.com/DarkAutumn2618/balatro-planetnine/archive/refs/heads/master.zip"
"title": "Planet Nine",
"requires-steamodded": true,
"requires-talisman": false,
"categories": [
"Resource Packs"
],
"author": "DarkAutumn2618",
"repo": "https://github.com/DarkAutumn2618/balatro-planetnine",
"downloadURL": "https://github.com/DarkAutumn2618/balatro-planetnine/archive/refs/heads/master.zip",
"automatic-version-check": true,
"version": "f551f58"
}

View File

@@ -1,9 +1,13 @@
{
"title": "Custom Suit Order",
"requires-steamodded": true,
"requires-talisman": false,
"categories": ["Quality of Life"],
"author": "DigitalDetective47",
"repo": "https://github.com/DigitalDetective47/suit-order",
"downloadURL": "https://github.com/DigitalDetective47/suit-order/archive/refs/heads/main.zip"
}
"title": "Custom Suit Order",
"requires-steamodded": true,
"requires-talisman": false,
"categories": [
"Quality of Life"
],
"author": "DigitalDetective47",
"repo": "https://github.com/DigitalDetective47/suit-order",
"downloadURL": "https://github.com/DigitalDetective47/suit-order/archive/refs/heads/main.zip",
"automatic-version-check": true,
"version": "0b2f126"
}

View 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.

View File

@@ -0,0 +1,13 @@
{
"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",
"automatic-version-check": true,
"version": "72c035a"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 KiB

View File

@@ -1,9 +1,13 @@
{
"title": "Strange Library",
"requires-steamodded": true,
"requires-talisman": false,
"categories": ["API"],
"author": "DigitalDetective47",
"repo": "https://github.com/DigitalDetective47/strange-library",
"downloadURL": "https://github.com/DigitalDetective47/strange-library/archive/refs/heads/main.zip"
}
"title": "Strange Library",
"requires-steamodded": true,
"requires-talisman": false,
"categories": [
"API"
],
"author": "DigitalDetective47",
"repo": "https://github.com/DigitalDetective47/strange-library",
"downloadURL": "https://github.com/DigitalDetective47/strange-library/archive/refs/heads/main.zip",
"automatic-version-check": true,
"version": "aa9ef89"
}

View File

@@ -1,9 +1,13 @@
{
"title": "Strange Pencil",
"requires-steamodded": true,
"requires-talisman": false,
"categories": ["Content"],
"author": "DigitalDetective47",
"repo": "https://github.com/DigitalDetective47/strange-pencil",
"downloadURL": "https://github.com/DigitalDetective47/strange-pencil/archive/refs/heads/main.zip"
}
"title": "Strange Pencil",
"requires-steamodded": true,
"requires-talisman": false,
"categories": [
"Content"
],
"author": "DigitalDetective47",
"repo": "https://github.com/DigitalDetective47/strange-pencil",
"downloadURL": "https://github.com/DigitalDetective47/strange-pencil/archive/refs/heads/main.zip",
"automatic-version-check": true,
"version": "df43a20"
}

View File

@@ -1,12 +0,0 @@
# Divvy's Preview for Balatro
Simulate the score and the dollars that you will get by playing the selected cards!
## Features
- Score and dollar preview **without side-effects**!
- **Updates in real-time** when changing selected cards, changing joker order, or using consumables!
- Can preview score even when cards are face-down!
- Perfectly **predicts random effects**...
- ... or not! There is an option to show the **minimum and maximum possible scores** when probabilities are involved!
## Warning
This mod **only simulates vanilla jokers**, it will not simulate modded jokers unless the mod that adds them supports this mod.

View File

@@ -1,9 +0,0 @@
{
"title": "Balatro-Preview",
"requires-steamodded": false,
"requires-talisman": false,
"categories": ["Quality of Life", "Miscellaneous"],
"author": "DivvyCr",
"repo": "https://github.com/DivvyCr/Balatro-Preview",
"downloadURL": "https://github.com/DivvyCr/Balatro-Preview/releases/latest/download/DOWNLOAD.zip"
}

View File

@@ -0,0 +1,7 @@
# A Jolly Expansion
This is a themed joker mod that comes with 9 jokers (3 common, 3 uncommon and 3 rare) as well a seal made to reference the YouTuber and Twitch streamer, A Jolly Wangcore.
This mod has been tested and should remain mostly balanced with the vanilla jokers whilst introducing some new styles of play.
Note that the seal is not accessible through consumables in the game and only through one of the rare jokers.

View File

@@ -0,0 +1,11 @@
{
"title": "A Jolly Expansion",
"requires-steamodded": true,
"requires-talisman": false,
"categories": ["Joker"],
"author": "DrFuff",
"repo": "https://github.com/HazzaMC/AJollyExpansion",
"downloadURL": "https://github.com/HazzaMC/AJollyExpansion/releases/download/v1.0.0/A_Jolly_Expansion.zip",
"folderName": "A Jolly Expansion",
"version": "1.0.0"
}

View File

@@ -0,0 +1,4 @@
This mod does nothing on its own it is used to make other mods work in newer versions of steamodded wether the mod is no longer being worked on or is in progress as of now the the mods that are supported by this are:
Jen's Almanac (For more information check the github)
Aurinko
Cruel Blinds

View File

@@ -0,0 +1,14 @@
{
"title": "Almanac Patches",
"requires-steamodded": true,
"requires-talisman": false,
"categories": [
"Technical"
],
"author": "Dragokillfist",
"repo": "https://github.com/Dragokillfist/almanac-patches",
"downloadURL": "https://github.com/Dragokillfist/almanac-patches/archive/refs/heads/main.zip",
"folderName": "AlmanacPatches",
"version": "233c9ea",
"automatic-version-check": true
}

View File

@@ -2,8 +2,12 @@
"title": "Textile",
"requires-steamodded": true,
"requires-talisman": false,
"categories": ["Technical"],
"categories": [
"Technical"
],
"author": "EnderGoodra",
"repo": "https://github.com/EnderGoodra/Textile/",
"downloadURL": "https://github.com/EnderGoodra/Textile/archive/refs/heads/main.zip"
"downloadURL": "https://github.com/EnderGoodra/Textile/archive/refs/heads/main.zip",
"automatic-version-check": true,
"version": "b5d0eb9"
}

View File

@@ -0,0 +1,3 @@
# Sticky Fingers
Adds the mobile drag'n'drop controls to interact with consumables and Jokers to the PC game, making it more touchscreen friendly!

View File

@@ -0,0 +1,14 @@
{
"title": "Sticky Fingers",
"requires-steamodded": true,
"requires-talisman": false,
"categories": [
"Quality of Life"
],
"author": "Eramdam",
"repo": "https://github.com/eramdam/sticky-fingers/",
"downloadURL": "https://github.com/eramdam/sticky-fingers/archive/refs/heads/main.zip",
"automatic-version-check": true,
"folderName": "sticky-fingers",
"version": "8cdac02"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

View File

@@ -1,9 +1,14 @@
{
"title": "Galdur",
"requires-steamodded": true,
"requires-talisman": false,
"categories": ["Content"],
"author": "Eremel",
"repo":"https://github.com/Eremel/Galdur",
"downloadURL": "https://github.com/Eremel/Galdur/archive/refs/heads/master.zip"
"title": "Galdur",
"requires-steamodded": true,
"requires-talisman": false,
"categories": [
"Quality of Life",
"API"
],
"author": "Eremel",
"repo": "https://github.com/Eremel/Galdur",
"downloadURL": "https://github.com/Eremel/Galdur/archive/refs/heads/master.zip",
"automatic-version-check": true,
"version": "747c5ce"
}

View File

@@ -1,9 +1,14 @@
{
"title": "Malverk",
"requires-steamodded": true,
"requires-talisman": false,
"categories": ["API", "Quality of Life"],
"author": "Eremel",
"repo":"https://github.com/Eremel/Malverk",
"downloadURL": "https://github.com/Eremel/Malverk/archive/refs/heads/main.zip"
"title": "Malverk",
"requires-steamodded": true,
"requires-talisman": false,
"categories": [
"API",
"Quality of Life"
],
"author": "Eremel",
"repo": "https://github.com/Eremel/Malverk",
"downloadURL": "https://github.com/Eremel/Malverk/archive/refs/heads/main.zip",
"automatic-version-check": true,
"version": "914ebfc"
}

View File

@@ -0,0 +1,9 @@
# Fortlatro
A terrible Fortnite themed Balatro mod
**Fortlatro** is a Fortnite-themed expansion for Balatro with support for OldCalc and Newcalc (accessible in the config) featuring over 59 Jokers, 2 Decks, 11 Tarots, 2 Spectrals, 29 Consumables, 7 Enhancements, 3 Seals, 2 Booster Packs, and 2 Blinds.
[Join the discord here!](https://discord.gg/t8R3A6RUbN) or the [balatro discord thread here!](https://discord.com/channels/1116389027176787968/1327844797653843978)
## Credits
Created by **EricTheToon**

View File

@@ -0,0 +1,15 @@
{
"title": "Fortlatro",
"requires-steamodded": true,
"requires-talisman": false,
"categories": [
"Content",
"Joker",
"Miscellaneous"
],
"author": "EricTheToon",
"repo": "https://github.com/EricTheToon/Fortlatro",
"downloadURL": "https://github.com/EricTheToon/Fortlatro/releases/latest/download/Fortlatro.zip",
"automatic-version-check": true,
"version": "1.1.3"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

View File

@@ -1,9 +1,13 @@
{
"title": "Finn's Pokélatro",
"requires-steamodded": true,
"requires-talisman": false,
"categories": ["Resource Packs"],
"author": "Finnaware",
"repo":"https://github.com/Finnaware/Finn-Pokelatro",
"downloadURL": "https://github.com/Finnaware/Finn-Pokelatro/archive/refs/heads/main.zip"
"title": "Finn's Pokélatro",
"requires-steamodded": true,
"requires-talisman": false,
"categories": [
"Resource Packs"
],
"author": "Finnaware",
"repo": "https://github.com/Finnaware/Finn-Pokelatro",
"downloadURL": "https://github.com/Finnaware/Finn-Pokelatro/archive/refs/heads/main.zip",
"automatic-version-check": true,
"version": "3637b76"
}

View File

@@ -0,0 +1,5 @@
# Bunco
A mod that aims to add more content in a way that'd seamlessly exist within the vanilla Balatro!
https://firch.github.io/BuncoWeb/

View File

@@ -0,0 +1,16 @@
{
"title": "Bunco",
"requires-steamodded": true,
"requires-talisman": false,
"categories": [
"Content",
"Joker",
"Quality of Life"
],
"author": "Firch",
"repo": "https://github.com/Firch/Bunco",
"downloadURL": "https://github.com/Firch/Bunco/releases/download/5.1/Bunco-5.1.zip",
"folderName": "Bunco",
"version": "5.1",
"automatic-version-check": false
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 848 KiB

View File

@@ -0,0 +1,17 @@
# GARBSHIT: Garb's Self-Indulgent Joker Pack
## ![Garb's Soul Sprite](https://github.com/Gainumki/GARBSHIT/blob/main/garb.png) > Hi! I'm Garb! I make Jokers!
## The Mod
Every Joker and art in this mod is made by me unless stated otherwise
I make these Jokers (And misc stuff too as of now) for myself but i figure people might enjoy them, so they're available to download!
There are currently 31 Jokers in this mod, more will be on the way :]
There's also a few consumables and enhancements, more of that coming soon too, stay tuned!!
Check the repository every once in a while for updates :33
## Special Thanks
Special thanks to Localthunk for making Balatro and to the Balatro discord (especially the people over on #modding-dev) for helping me whenever I had any issues, y'all the best >8]

View File

@@ -0,0 +1,14 @@
{
"title": "GARBSHIT",
"requires-steamodded": true,
"requires-talisman": false,
"categories": [
"Content"
],
"author": "Garb",
"repo": "https://github.com/Gainumki/GARBSHIT.git",
"downloadURL": "https://github.com/Gainumki/GARBSHIT/archive/refs/heads/main.zip",
"folderName": "GARBSHIT",
"automatic-version-check": true,
"version": "a871ad6"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 758 KiB

View File

@@ -1,9 +1,13 @@
{
"title": "D6 Jokers",
"requires-steamodded": true,
"requires-talisman": false,
"categories": ["Joker"],
"author": "GauntletGames-2086",
"repo":"https://github.com/GauntletGames-2086/D6-Jokers",
"downloadURL":"https://github.com/GauntletGames-2086/D6-Jokers/archive/refs/heads/main.zip"
"title": "D6 Jokers",
"requires-steamodded": true,
"requires-talisman": false,
"categories": [
"Joker"
],
"author": "GauntletGames-2086",
"repo": "https://github.com/GauntletGames-2086/D6-Jokers",
"downloadURL": "https://github.com/GauntletGames-2086/D6-Jokers/archive/refs/heads/main.zip",
"automatic-version-check": true,
"version": "ac2a2ae"
}

View File

@@ -1,9 +1,13 @@
{
"title": "Paperback",
"requires-steamodded": true,
"requires-talisman": false,
"categories": ["Content"],
"author": "PaperMoon",
"repo":"https://github.com/GitNether/paperback",
"downloadURL": "https://github.com/GitNether/paperback/archive/refs/heads/main.zip"
"title": "Paperback",
"requires-steamodded": true,
"requires-talisman": false,
"categories": [
"Content"
],
"author": "PaperMoon",
"repo": "https://github.com/GitNether/paperback",
"downloadURL": "https://github.com/GitNether/paperback/archive/refs/heads/main.zip",
"automatic-version-check": true,
"version": "6b73d3b"
}

View File

@@ -1,9 +1,13 @@
{
"title": "Balagay",
"requires-steamodded": true,
"requires-talisman": false,
"categories": ["Miscellaneous"],
"author": "GitNether",
"repo":"https://github.com/GitNether/balagay",
"downloadURL": "https://github.com/GitNether/balagay/releases/download/v1.0.0/BalaGay.zip"
}
{
"title": "Balagay",
"requires-steamodded": true,
"requires-talisman": false,
"categories": [
"Miscellaneous"
],
"author": "GitNether",
"repo": "https://github.com/GitNether/balagay",
"downloadURL": "https://github.com/GitNether/balagay/releases/download/v1.0.0/BalaGay.zip",
"automatic-version-check": false,
"version": "v1.0.0"
}

View File

@@ -1,9 +1,13 @@
{
"title": "Gemstones",
"requires-steamodded": true,
"requires-talisman": false,
"categories": ["Content"],
"author": "Halo / OfficialHalo",
"repo": "https://github.com/0fficialHalo/Gemstones",
"downloadURL": "https://github.com/0fficialHalo/Gemstones/releases/latest/download/Gemstones.zip"
}
{
"title": "Gemstones",
"requires-steamodded": true,
"requires-talisman": false,
"categories": [
"Content"
],
"author": "Halo / OfficialHalo",
"repo": "https://github.com/0fficialHalo/Gemstones",
"downloadURL": "https://github.com/0fficialHalo/Gemstones/releases/latest/download/Gemstones.zip",
"automatic-version-check": true,
"version": "v0.8.0"
}

View File

@@ -0,0 +1,3 @@
# Condensed_UI
Pushes all UI elements into the left side and adds a tracker for the Ante's Blinds/Skip Tags

View File

@@ -0,0 +1,13 @@
{
"title": "Condensed UI",
"automatic-version-check": true,
"requires-steamodded": true,
"requires-talisman": false,
"author": "Hoversquid",
"categories": [
"Quality of Life"
],
"repo": "https://github.com/Hoversquid/Condensed_UI",
"downloadURL": "https://github.com/Hoversquid/Condensed_UI/archive/refs/tags/v1.0-alpha.zip",
"version": "v1.0-alpha"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

View File

@@ -1,9 +1,14 @@
{
"title": "LocFixer",
"requires-steamodded": true,
"requires-talisman": false,
"categories": ["Quality of Life", "Miscellaneous"],
"author": "HuyTheKiller",
"repo": "https://github.com/HuyTheKiller/LocFixer",
"downloadURL": "https://github.com/HuyTheKiller/LocFixer/archive/refs/heads/main.zip"
}
"title": "LocFixer",
"requires-steamodded": true,
"requires-talisman": false,
"categories": [
"Quality of Life",
"Miscellaneous"
],
"author": "HuyTheKiller",
"repo": "https://github.com/HuyTheKiller/LocFixer",
"downloadURL": "https://github.com/HuyTheKiller/LocFixer/archive/refs/heads/main.zip",
"automatic-version-check": true,
"version": "bb19661"
}

View File

@@ -0,0 +1,3 @@
# SauKhongHuDecks 🐛
This mod aims to add a set of themed decks for SauKhongHu's channel.
You can still try this mod without consequences... or is it?

View File

@@ -0,0 +1,13 @@
{
"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",
"automatic-version-check": true,
"version": "e4fd8e5"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 539 KiB

View File

@@ -1,9 +1,13 @@
{
"title": "Vietnamese Balatro",
"requires-steamodded": true,
"requires-talisman": false,
"categories": ["Miscellaneous"],
"author": "HuyTheKiller",
"repo": "https://github.com/HuyTheKiller/VietnameseBalatro",
"downloadURL": "https://github.com/HuyTheKiller/VietnameseBalatro/archive/refs/heads/main.zip"
}
"title": "Vietnamese Balatro",
"requires-steamodded": true,
"requires-talisman": false,
"categories": [
"Miscellaneous"
],
"author": "HuyTheKiller",
"repo": "https://github.com/HuyTheKiller/VietnameseBalatro",
"downloadURL": "https://github.com/HuyTheKiller/VietnameseBalatro/archive/refs/heads/main.zip",
"automatic-version-check": true,
"version": "69715f2"
}

View File

@@ -0,0 +1,7 @@
# Balatro Goes Kino
By Ice/IcyEthics
Balatro Goes Kino is a content overhaul mod that adds a large amount of content all inspired by the silver screen. Grabbing from every genre, it adds a large number of new jokers, new enhancements, new blinds and more. Grab some snacks from the new Confection consumable, while you watch your Sci-Fi jokers make use of the new Alien Abduction mechanic. Or maybe you'd prefer to cast spells using the Fantasy enhancement's Spellcasting system.
* **[Join the Kino Discord!](<https://discord.gg/z82PMJRQ>)**

View File

@@ -0,0 +1,14 @@
{
"title": "Balatro Goes Kino!",
"requires-steamodded": true,
"requires-talisman": false,
"categories": [
"Content"
],
"author": "IcyEthics",
"repo": "https://github.com/icyethics/Kino",
"downloadURL": "https://github.com/icyethics/Kino/archive/refs/heads/main.zip",
"folderName": "Kino",
"version": "4d0ba7b",
"automatic-version-check": true
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@@ -0,0 +1 @@
A QoL mod for when Balatro's tiny shop just can't contain the amount of content your mods add. Allows you to change the number of slots in the shop and card areas.

View File

@@ -0,0 +1,14 @@
{
"title": "Glue For Modpacks",
"requires-steamodded": true,
"requires-talisman": false,
"categories": [
"Quality of Life",
"Miscellaneous"
],
"author": "IcyEthics",
"repo": "https://github.com/icyethics/Glue-For-Modpacks",
"downloadURL": "https://github.com/icyethics/Glue-For-Modpacks/archive/refs/heads/main.zip",
"automatic-version-check": true,
"version": "3d3ad5f"
}

View File

@@ -2,8 +2,13 @@
"title": "Pokermon",
"requires-steamodded": true,
"requires-talisman": false,
"categories": ["Content", "Joker"],
"categories": [
"Content",
"Joker"
],
"author": "InertSteak",
"repo":"https://github.com/InertSteak/Pokermon",
"downloadURL": "https://github.com/InertSteak/Pokermon/archive/refs/heads/main.zip"
"repo": "https://github.com/InertSteak/Pokermon",
"downloadURL": "https://github.com/InertSteak/Pokermon/archive/refs/heads/main.zip",
"automatic-version-check": true,
"version": "9b7ef49"
}

View File

@@ -0,0 +1,23 @@
# Runelatro Features
### Features 150+ OldSchool RuneScape Monsters, based on Joker Rarity + MUCH more!
- Retextures the following:
- Suit Cards (Uncut Gems)
- Joker Cards (Monsters)
- Tarot Cards (NPC's)
- Spectral Cards (Items)
- Planet Cards (Locations)
- Chips/Stickers (Coins)
- Card Backs/Enhancers
- Vouchers
- Tags
- Custom Runelatro Logo
- Custom suit colors
- Background colour change
- Renamed cards
# How To Use
Requires **Steamodded** and **Malverk** as Dependency.\
Alternatively you can manually download and replace your desired textures within the game files.

View File

@@ -0,0 +1,14 @@
{
"title": "Runelatro",
"requires-steamodded": true,
"requires-talisman": false,
"categories": [
"Resource Packs"
],
"author": "Isotope",
"repo": "https://github.com/IsotopeReal/Runelatro",
"downloadURL": "https://github.com/IsotopeReal/Runelatro/archive/refs/heads/main.zip",
"folderName": "Runelatro",
"version": "53e8448",
"automatic-version-check": true
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 289 KiB

View File

@@ -1,9 +1,13 @@
{
"title": "Codex Arcanum",
"requires-steamodded": true,
"requires-talisman": false,
"categories": ["Content"],
"author": "itayfeder, lshtech",
"repo":"https://github.com/lshtech/Codex-Arcanum",
"downloadURL":"https://github.com/lshtech/Codex-Arcanum/archive/refs/heads/main.zip"
}
{
"title": "Codex Arcanum",
"requires-steamodded": true,
"requires-talisman": false,
"categories": [
"Content"
],
"author": "itayfeder, lshtech",
"repo": "https://github.com/lshtech/Codex-Arcanum",
"downloadURL": "https://github.com/lshtech/Codex-Arcanum/archive/refs/heads/main.zip",
"automatic-version-check": true,
"version": "cf24773"
}

View File

@@ -1,9 +1,14 @@
{
"title": "Fusion Jokers",
"requires-steamodded": true,
"requires-talisman": false,
"categories": ["Joker"],
"author": "itayfeder",
"repo":"https://github.com/lshtech/Fusion-Jokers",
"downloadURL":"https://github.com/lshtech/Fusion-Jokers/archive/refs/heads/main.zip"
}
{
"title": "Fusion Jokers",
"requires-steamodded": true,
"requires-talisman": false,
"categories": [
"Joker",
"API"
],
"author": "itayfeder",
"repo": "https://github.com/lshtech/Fusion-Jokers",
"downloadURL": "https://github.com/lshtech/Fusion-Jokers/archive/refs/heads/main.zip",
"automatic-version-check": true,
"version": "fb52ba8"
}

View File

@@ -1,10 +1,14 @@
{
"title": "Flower Pot",
"requires-steamodded": false,
"requires-talisman": false,
"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",
"folderName": "Flower-Pot"
"title": "Flower Pot",
"requires-steamodded": false,
"requires-talisman": false,
"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",
"folderName": "Flower-Pot",
"automatic-version-check": true,
"version": "2c9ef70"
}

View File

@@ -1,9 +1,13 @@
{
"title": "Bad Apple",
"requires-steamodded": true,
"requires-talisman": false,
"categories": ["Joker"],
"author": "JamesTheJellyfish",
"repo":"https://github.com/jamesthejellyfish/BadAppleBalatro",
"downloadURL":"https://github.com/jamesthejellyfish/BadAppleBalatro/archive/refs/heads/main.zip"
"title": "Bad Apple",
"requires-steamodded": true,
"requires-talisman": false,
"categories": [
"Joker"
],
"author": "JamesTheJellyfish",
"repo": "https://github.com/jamesthejellyfish/BadAppleBalatro",
"downloadURL": "https://github.com/jamesthejellyfish/BadAppleBalatro/archive/refs/heads/main.zip",
"automatic-version-check": true,
"version": "ee0d3c2"
}

View File

@@ -1,9 +1,13 @@
{
"title": "Deluxe Consumables",
"requires-steamodded": true,
"requires-talisman": false,
"categories": ["Content"],
"author": "JeffVi",
"repo":"https://github.com/JeffVi/DX-Tarots",
"downloadURL":"https://github.com/JeffVi/DX-Tarots/archive/refs/heads/master.zip"
"title": "Deluxe Consumables",
"requires-steamodded": true,
"requires-talisman": false,
"categories": [
"Content"
],
"author": "JeffVi",
"repo": "https://github.com/JeffVi/DX-Tarots",
"downloadURL": "https://github.com/JeffVi/DX-Tarots/archive/refs/heads/master.zip",
"automatic-version-check": true,
"version": "7c5c1df"
}

View File

@@ -0,0 +1,11 @@
This is a vanilla-inspired mod that aims to enhance gameplay experience by adding new content such as Jokers, spectral cards, vouchers, seals (and more to come!)
Contents:
- 15 new Jokers
- 6 new Spectral cards
- 2 new Seals
- 2 new Vouchers
- 1 secret?...
>>>SPECIAL THANKS: trif, Gappie, eremel_, BepisFever, baliame, Victin and other folks from the official Balatro Discord!
mod by: Kars, sup3p

View File

@@ -0,0 +1,13 @@
{
"title": "HandsomeDevils",
"requires-steamodded": true,
"requires-talisman": false,
"categories": [
"Content"
],
"author": "Kars, sup3p",
"repo": "https://github.com/AlexanderAndersonAmenAmen/Handsome-Devils-Vanilla-mod-",
"downloadURL": "https://github.com/AlexanderAndersonAmenAmen/Handsome-Devils-Vanilla-mod-/archive/refs/heads/main.zip",
"automatic-version-check": true,
"version": "d9039c2"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

View File

@@ -1,9 +1,13 @@
{
"title": "DeckSkinsLite",
"requires-steamodded": true,
"requires-talisman": false,
"categories": ["Miscellaneous"],
"author": "Keku",
"repo": "https://github.com/Kekulism/DeckSkinsLite",
"downloadURL": "https://github.com/Kekulism/DeckSkinsLite/archive/refs/heads/main.zip"
}
{
"title": "DeckSkinsLite",
"requires-steamodded": true,
"requires-talisman": false,
"categories": [
"Miscellaneous"
],
"author": "Keku",
"repo": "https://github.com/Kekulism/DeckSkinsLite",
"downloadURL": "https://github.com/Kekulism/DeckSkinsLite/archive/refs/heads/main.zip",
"automatic-version-check": true,
"version": "78cb154"
}

View File

@@ -0,0 +1,8 @@
# Vortex
A simple mod that removes the pixelation effect from Balatro's backgrounds!
![Balatro Title Sceen with Vortex](https://i.imgur.com/OLAQ11v.jpeg)
I've seen people post videos of the Balatro background without the pixelation effect, since a lot of people really like the look of it and wanted to use it as a desktop background, but for some reason no one had made an accessible mod for it. So here's this! There's almost nothing to it, this mod simply replaces the background shaders with an edited version that removes the pixelation effect.
This mod is compatible with any other mods that change the background colors, like [Cryptid](github.com/MathIsFun0/Cryptid) or [Cardsauce](https://github.com/BarrierTrio/Cardsauce).
If you wanna go crazy with making your own custom swirling balatro vortex desktop background, i reccomend getting [DebugPlus](https://github.com/WilsontheWolf/DebugPlus) and [Cardsauce](https://github.com/BarrierTrio/Cardsauce) and setting the background colors to your liking, then hide the UI with H!

View File

@@ -0,0 +1,14 @@
{
"title": "Vortex",
"requires-steamodded": true,
"requires-talisman": false,
"categories": [
"Miscellaneous"
],
"author": "Keku",
"repo": "https://github.com/Kekulism/Vortex/",
"downloadURL": "https://github.com/Kekulism/Vortex/archive/refs/heads/main.zip",
"folderName": "Vortex",
"version": "7f2ab8b",
"automatic-version-check": true
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 249 KiB

View File

@@ -0,0 +1,5 @@
Adds 30 unique and mostly balanced jokers
Some references from Half Life, Rain World, Inscryption, Viscera Cleanup Detail, Barotrauma, and more!
https://github.com/Kingmaxthe2/Kingmaxthe2-Joker-Pack

Some files were not shown because too many files have changed in this diff Show More