Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
BikininjasCustomPosters
Bikininjas Custom Posters with french people and memes for Lethal Company
| Last updated | 7 months ago |
| Total downloads | 155 |
| Total rating | 1 |
| Categories | Posters |
| Dependency string | Bikininjas-BikininjasCustomPosters-0.1.3 |
| Dependants | 0 other packages depend on this package |
This mod requires the following mods to function
seechela-CustomPosters
Replaces the default posters in the ship with custom posters. You can add your own images!
Preferred version: 3.2.0README
Bikininjas Custom Posters
A content pack and intelligent pack generator for the CustomPosters mod in Lethal Company.
๐ฏ What's Included
- Custom Poster Pack: Pre-configured posters ready for the game
- Intelligent Pack Generator: Python script that automatically matches images to poster slots based on aspect ratio similarity
๐ฆ Quick Start - Using the Poster Pack
- Download this repository
- Copy the
BepInExfolder to your Lethal Company directory - Launch the game and enjoy custom posters!
๐ ๏ธ Pack Generator Tool
โจ How It Works
The pack generator uses intelligent aspect ratio matching to automatically assign your images and videos to the best-fitting poster slots:
- Scans all images and videos in the
input/folder - Calculates the aspect ratio of each file (width/height)
- Matches each file to the poster slot with the closest aspect ratio
- Generates a complete poster pack ready for the game
- Videos are automatically converted to MP4 format
๐ Poster Specifications
The mod supports exactly 6 slots per pack:
| Slot | Dimensions | Aspect Ratio | Orientation | Output Format |
|---|---|---|---|---|
| Poster1 | 639 ร 488 | 1.31:1 | Landscape | PNG or MP4 |
| Poster2 | 730 ร 490 | 1.49:1 | Landscape | PNG or MP4 |
| Poster3 | 749 ร 1054 | 0.71:1 | Portrait | PNG or MP4 |
| Poster4 | 729 ร 999 | 0.73:1 | Portrait | PNG or MP4 |
| Poster5 | 552 ร 769 | 0.72:1 | Portrait | PNG or MP4 |
| CustomTips | 860 ร 1219 | 0.71:1 | Portrait | PNG or MP4 |
Note:
- Images are saved as
.pngfiles - Videos are converted to
.mp4files (H.264 video, AAC audio) - All files are saved to
posters/ortips/folders
๏ฟฝ Intelligent Matching Example
If you have these images:
landscape1.jpg(1920ร1080, ratio 1.78:1)landscape2.jpg(1280ร720, ratio 1.78:1)portrait1.jpg(1080ร1920, ratio 0.56:1)portrait2.jpg(800ร1200, ratio 0.67:1)portrait3.jpg(900ร1400, ratio 0.64:1)portrait4.jpg(1000ร1500, ratio 0.67:1)
The script will automatically match:
landscape1.jpgโ Poster2 (closest to 1.49:1)landscape2.jpgโ Poster1 (closest to 1.31:1)portrait1.jpgโ CustomTips (closest to 0.71:1)portrait2.jpgโ Poster4 (closest to 0.73:1)portrait3.jpgโ Poster5 (closest to 0.72:1)portrait4.jpgโ Poster3 (closest to 0.71:1)
๐ Supported Formats
.jpg .jpeg .png .bmp .gif .tiff .webp .avif
๐ Installation & Setup
1. Install Python (3.7+)
2. Navigate to Image Resizer Directory
cd /path/to/lc_bikininjaPosters/image_resizer
3. Create Virtual Environment (Recommended)
# Create venv
python3 -m venv venv
# Activate venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
4. Install Dependencies
pip install -r requirements.txt
This installs:
- Pillow - Image processing
- pillow-avif-plugin - AVIF format support
- moviepy - Video conversion and processing
๐ป Usage
Basic Workflow
# 1. Activate virtual environment
cd /path/to/lc_bikininjaPosters/image_resizer
source venv/bin/activate # Linux/Mac
# 2. Add your images and videos to input/
cp ~/Pictures/*.jpg input/
cp ~/Videos/*.mp4 input/
# 3. Run the generator
python poster_resizer.py
# 4. The script will:
# - Analyze all images and videos
# - Match them to best-fitting slots
# - Convert videos to MP4 format
# - Create a complete poster pack
# - Move processed files to done/
Example Session
$ python poster_resizer.py
======================================================================
๐ผ๏ธ CUSTOMPOSTERS PACK GENERATOR
======================================================================
Intelligently matches images to poster slots based on aspect ratio
======================================================================
โ๏ธ Configuration:
Input: input
Output: ../BepInEx/plugins
Pack: BikininjasPosters
Aspect: Maintained
๐ Scanning for images...
โ Found 6 file(s)
๐ฏ Matching images to poster slots...
======================================================================
๐ IMAGE-TO-SLOT MATCHING REPORT
======================================================================
โ Matched 6 of 6 possible slots
โ Poster1 (639ร488) โ landscape1.jpg
Target ratio: 1.309 | Image ratio: 1.333 | Fit: Excellent
โ Poster2 (730ร490) โ action_video.mp4 ๐ฌ
Target ratio: 1.490 | Image ratio: 1.500 | Fit: Perfect
โ Poster3 (749ร1054) โ portrait1.jpg
Target ratio: 0.710 | Image ratio: 0.700 | Fit: Perfect
โ Poster4 (729ร999) โ portrait2.jpg
Target ratio: 0.730 | Image ratio: 0.720 | Fit: Perfect
โ Poster5 (552ร769) โ animation.mp4 ๐ฌ
Target ratio: 0.718 | Image ratio: 0.714 | Fit: Perfect
โ CustomTips (860ร1219) โ portrait4.jpg
Target ratio: 0.705 | Image ratio: 0.707 | Fit: Perfect
======================================================================
๐ฆ Creating pack: BikininjasPosters
โ Pack directory: ../BepInEx/plugins/BikininjasPosters
======================================================================
๐ผ๏ธ PROCESSING IMAGES & VIDEOS
======================================================================
๐ Poster1:
Processing IMAGE: landscape1.jpg โ Poster1.png
โ Saved: ../BepInEx/plugins/BikininjasPosters/posters/Poster1.png
๐ Poster2:
Processing VIDEO: action_video.mp4 โ Poster2.mp4
Loading video: action_video.mp4
Encoding video to MP4...
โ Saved: ../BepInEx/plugins/BikininjasPosters/posters/Poster2.mp4
[... continues for all slots ...]
โ Successfully processed 6 of 6 files
======================================================================
๐ Pack info saved: ../BepInEx/plugins/BikininjasPosters/pack_info.txt
======================================================================
๐งน CLEANING UP
======================================================================
โ Moved to done: landscape1.jpg
โ Moved to done: action_video.mp4
[... continues ...]
โ Moved 6 files to done directory
======================================================================
======================================================================
๐ PACK GENERATION COMPLETE!
======================================================================
โ Pack: ../BepInEx/plugins/BikininjasPosters
โ Processed: 6 file(s) (4 images, 2 videos)
๐ Next steps:
1. Review: ../BepInEx/plugins/BikininjasPosters
2. Copy 'BikininjasPosters' to:
Lethal Company/BepInEx/plugins/
======================================================================
๐ง Advanced Options
Custom Pack Name
python poster_resizer.py --pack-name MyAwesomePosters
Custom Directories
python poster_resizer.py --input ~/my_images --output ~/game_mods
Stretch Images (No Aspect Ratio Preservation)
python poster_resizer.py --no-aspect
Keep Original Files in Input
python poster_resizer.py --no-cleanup
Show Help
python poster_resizer.py --help
๐ Directory Structure
lc_bikininjaPosters/
โโโ BepInEx/plugins/
โ โโโ BikininjasPosters/ # Generated pack (ready for game)
โ โโโ posters/
โ โ โโโ Poster1.png
โ โ โโโ Poster2.png
โ โ โโโ Poster3.png
โ โ โโโ Poster4.png
โ โ โโโ Poster5.png
โ โโโ tips/
โ โ โโโ CustomTips.png
โ โโโ pack_info.txt # Pack information
โโโ image_resizer/
โโโ poster_resizer.py # Main script
โโโ config.py # Poster specifications
โโโ ratio_matcher.py # Aspect ratio matching logic
โโโ image_processor.py # Image resizing and saving
โโโ pack_generator.py # Pack structure creation
โโโ requirements.txt # Python dependencies
โโโ input/ # Add your images here
โโโ done/ # Processed files moved here
โโโ venv/ # Virtual environment
๐ก Multiple Packs
If you have more than 6 images, the script will match the best 6 and leave the rest in input/:
$ python poster_resizer.py
โ Found 15 image(s)
โ Matched 6 of 6 possible slots
๐ฆ Unmatched images (9):
โข image7.jpg (ratio: 1.500)
โข image8.jpg (ratio: 0.720)
[... etc ...]
๐ก Tip: These images can be used for additional packs
To create another pack:
# The matched images are now in done/
# Unmatched images are still in input/
# Create a second pack
python poster_resizer.py --pack-name BikininjasPosters2
# Create a third pack
python poster_resizer.py --pack-name BikininjasPosters3
๐ฏ Tips for Best Results
- Media Quality - Use high-resolution images and videos (script downscales)
- Aspect Ratios - Pre-sort files by orientation:
- Landscape files (~1.3:1 to 1.5:1) โ Poster1, Poster2
- Portrait files (~0.7:1 to 0.75:1) โ Poster3, Poster4, Poster5, CustomTips
- Video Tips:
- Keep videos short (30 seconds or less recommended)
- Any format works - automatically converted to MP4 (H.264)
- Video encoding may take time - be patient
- File Names - Use descriptive names to track which file goes where
- Review First - Check the matching report before deploying
- Test In-Game - Review posters in game before creating more packs
๐ Troubleshooting
No images found
# Check input directory
ls input/
# Ensure files have valid extensions
moviepy library not found
# Activate venv
source venv/bin/activate
# Install moviepy
pip install moviepy
Video processing is slow
- Video encoding takes time - be patient
- Consider shorter clips or lower resolution sources
- The script shows encoding progress
Import errors
# Activate venv
source venv/bin/activate
# Reinstall dependencies
pip install --upgrade -r requirements.txt
Poor aspect ratio matches
The script always assigns all 6 slots. If your images don't match well:
- Add more images with different aspect ratios
- Use
--no-aspectto stretch images (may distort) - Manually crop images before processing
Permission denied
chmod -R u+w BepInEx/
Virtual environment issues
# Ubuntu/Debian
sudo apt-get install python3-venv
# Recreate venv
rm -rf venv
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
๐งน File Management
Automatic Cleanup
- Successfully processed images โ moved to
done/ - Unmatched images โ stay in
input/for next pack - Duplicate filenames โ automatically numbered (_1, _2, etc.)
Git Ignore
The following are automatically ignored by git:
- All media files in
input/,done/ - Virtual environment (
venv/) - Generated pack folders
๐ Technical Details
Aspect Ratio Matching Algorithm
- Calculate aspect ratio for each input image
- Calculate target ratios for all 6 slots
- Use greedy assignment:
- Prioritize slots with most unique ratios first
- For each slot, find the closest-matching available image
- Remove matched image from available pool
- Report match quality (Perfect/Excellent/Good/Fair)
Image Processing
- Resizing: Pillow/LANCZOS for high quality
- Aspect ratio: Smart cropping - crops images to match target ratio, then resizes
- No padding: Images fill entire space (no white/black bars)
- Centering: Crops are centered to preserve focal point
- Format: Images saved as PNG
- Quality: Lossless compression
Video Processing
- Codec: H.264 video, AAC audio
- Output: Always MP4 format
- Aspect ratio: Maintained with black bars (centered)
- Quality: Preserves original quality where possible
- Framerate: Maintains original framerate
- Dimensions: Adjusted to even numbers (required for H.264)
Pack Management
- Auto-cleanup: Existing pack directory is cleaned before generating new pack
- No duplicates: Each source file used exactly once per pack
- Processed tracking: Files moved to
done/after successful processing
๐ License
This tool is provided as-is for use with the CustomPosters mod. Please respect the original mod's license and the copyrights of any images you process.
๐ Links
Smart matching โข Perfect packs โข Infinite creativity ๐จ
๐ ๏ธ Image Resizer Tool
A Python script that batch-processes images and videos for the CustomPosters mod with triple output functionality.
โจ Key Features
- โ Unlimited files - Process as many images/videos as you want
- โ
Triple output - Each file saved to 3 locations automatically:
posters/- for in-game wall decorationstips/- for in-game loading screensoutput/- for additional processing with 3rd party tools
- โ Same naming - All locations use identical filenames (Poster1, Poster2, etc.)
- โ Dimension cycling - Automatically cycles through 5 different poster sizes
- โ Video support - Converts any video format to MP4
- โ Zero interaction - Fully automatic, no prompts
- โ
Auto cleanup - Moves processed files to
done/directory - โ Git-friendly - Media files automatically ignored
๐ Dimension Cycling
Files automatically cycle through 5 standard dimensions:
| File # | Dimensions | Format | Extension |
|---|---|---|---|
| 1, 6, 11... | 639ร488 | PNG | .png |
| 2, 7, 12... | 730ร490 | JPEG | .jpg |
| 3, 8, 13... | 749ร1054 | BMP | .bmp |
| 4, 9, 14... | 729ร999 | BMP | .bmp |
| 5, 10, 15... | 552ร769 | JPEG | .jpg |
Videos: Always .mp4 regardless of cycle
๐ Supported Formats
Images: .jpg .jpeg .png .bmp .gif .tiff .webp .avif
Videos: .mp4 .avi .mov .mkv .flv .wmv .webm .m4v
๐ Installation & Setup
1. Install Python (3.7+)
2. Navigate to the Image Resizer Directory
cd /path/to/lc_bikininjaPosters/image_resizer
3. Create Virtual Environment (Recommended)
# Create venv
python3 -m venv venv
# Activate venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
# Your prompt should show: (venv)
4. Install Dependencies
pip install -r requirements.txt
This installs:
- Pillow - Image processing
- pillow-avif-plugin - AVIF format support
- moviepy - Video conversion
๐ป Usage
Basic Workflow (3 Commands)
# 1. Activate virtual environment
cd /path/to/lc_bikininjaPosters/image_resizer
source venv/bin/activate # Linux/Mac
# 2. Add your images/videos to input/
cp ~/Pictures/*.jpg input/
# 3. Run the script (fully automatic)
python poster_resizer.py
What Happens
Each file in input/ is:
- Resized to the appropriate dimensions (cycling through 5 sizes)
- Saved to THREE locations with the same name:
../BepInEx/plugins/BikininjasPosters/posters/../BepInEx/plugins/BikininjasPosters/tips/output/(for additional processing)
- Original file moved to
done/
Example Session
$ ls input/
cat.jpg dog.png video.mp4
$ python poster_resizer.py
Found 3 file(s) in input/:
- 2 image(s)
- 1 video(s)
Processing #1: cat.jpg โ Poster1.png (639x488)
โ Saved to posters: Poster1.png
โ Saved to tips: Poster1.png
โ Saved to output: Poster1.png
โณ Moved to done: cat.jpg
Processing #2: dog.png โ Poster2.jpg (730x490)
โ Saved to posters: Poster2.jpg
โ Saved to tips: Poster2.jpg
โ Saved to output: Poster2.jpg
โณ Moved to done: dog.png
Processing #3: video.mp4 โ Poster3.mp4 (749x1054)
โ Saved to posters: Poster3.mp4
โ Saved to tips: Poster3.mp4
โ Saved to output: Poster3.mp4
โณ Moved to done: video.mp4
๐ Processing complete! Processed 3 files
Output summary:
๐ 3 files in each location:
- BepInEx/plugins/BikininjasPosters/posters
- BepInEx/plugins/BikininjasPosters/tips
- output
๐ Directory Structure
lc_bikininjaPosters/
โโโ BepInEx/plugins/BikininjasPosters/
โ โโโ posters/ # Game-ready posters (output from script)
โ โ โโโ Poster1.png
โ โ โโโ Poster2.jpg
โ โ โโโ ...
โ โโโ tips/ # Game-ready tips (output from script)
โ โโโ Poster1.png
โ โโโ Poster2.jpg
โ โโโ ...
โโโ image_resizer/
โโโ poster_resizer.py # Main script
โโโ requirements.txt # Python dependencies
โโโ input/ # Put your media files here
โโโ done/ # Processed files moved here
โโโ output/ # Additional processing workspace
โโโ venv/ # Virtual environment (created by you)
๐ก Use Cases
Use Case 1: Simple Mod Creation
# 1. Add images to input/
cp ~/Pictures/*.jpg input/
# 2. Run script
python poster_resizer.py
# 3. Copy to game
cp -r BepInEx ~/Games/LethalCompany/
Use Case 2: With Additional Processing
# 1. Run script
python poster_resizer.py
# 2. Process files in output/ with 3rd party tools
cd output/
# ... run optimization, filters, etc ...
# 3. Copy optimized files back to posters/tips if needed
cp optimized_*.png ../BepInEx/plugins/BikininjasPosters/posters/
Use Case 3: Quality Check Before Deploy
# 1. Run script
python poster_resizer.py
# 2. Review files in output/
ls -lh output/
# 3. If issues found, reprocess
mv done/bad_image.jpg input/
python poster_resizer.py
๐ง Advanced Options
Custom Commands
# Use custom input directory
python poster_resizer.py --input ~/my_media
# Use custom target directory
python poster_resizer.py --target /path/to/mod
# Show help
python poster_resizer.py --help
Aspect Ratio
By default, the script maintains aspect ratio with white/black padding.
To stretch/distort images instead:
python poster_resizer.py --no-aspect
๐ฏ Tips for Best Results
- Use high-quality source media - Script downscales but won't enhance quality
- Consider aspect ratios:
- Files 1, 6, 11... (639ร488) - Landscape ~1.31:1
- Files 2, 7, 12... (730ร490) - Landscape ~1.49:1
- Files 3, 8, 13... (749ร1054) - Portrait ~0.71:1
- Files 4, 9, 14... (729ร999) - Portrait ~0.73:1
- Files 5, 10, 15... (552ร769) - Portrait ~0.72:1
- For videos:
- Keep short (30 seconds or less recommended)
- Any format works - auto-converted to MP4
- Consider file size for mod distribution
- Review output/ before deploying to game
๐ Troubleshooting
"No supported media files found"
# Check input directory
ls input/
# Make sure files have valid extensions
"moviepy library not found"
# Activate venv first
source venv/bin/activate
# Reinstall dependencies
pip install -r requirements.txt
Video processing is slow
- Video encoding takes time - be patient
- Consider shorter clips or lower resolution sources
Permission denied
# Fix permissions
chmod -R u+w BepInEx/
Import errors
# Ensure venv is activated
source venv/bin/activate
which python # Should show: .../venv/bin/python
# Reinstall dependencies
pip install --upgrade -r requirements.txt
Virtual environment issues
# Ubuntu/Debian: Install venv module
sudo apt-get install python3-venv
# Recreate venv
rm -rf venv
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
๐งน File Management
What Gets Processed
- All supported image and video files in
input/ - Files are processed in alphabetical order
- Sequential numbering: Poster1, Poster2, Poster3...
What Happens to Files
- Successful: Moved from
input/todone/ - Failed: Stays in
input/for retry - Duplicates: Number suffix added (_1, _2, etc.)
Git Ignore Configuration
Automatically ignored by git:
- โ All media files in
input/,done/,output/ - โ Virtual environment (
venv/,.venv/,env/) - โ Temporary video files
- โ Directory structure and scripts tracked
๐ Technical Details
Image Processing
- Aspect ratio: Maintained by default (white padding added)
- Transparency: Converted to RGB with white background
- Quality: JPEG 95%, PNG lossless, BMP standard
Video Processing
- Codec: H.264 video, AAC audio
- Output: Always MP4 format
- Quality: Preserves original quality where possible
- Framerate: Maintains original framerate
Triple Output Logic
For each file in input/:
1. Determine dimensions (cycle index)
2. Resize/convert media
3. Save to posters/PosterN.ext
4. Copy to tips/PosterN.ext
5. Copy to output/PosterN.ext
6. Move original to done/
๐ Benefits
| Feature | Benefit |
|---|---|
| Unlimited files | Process entire collections at once |
| Triple output | Maximum flexibility for any workflow |
| Zero interaction | Just run and go |
| Dimension cycling | Automatic variety across poster sizes |
| Video support | Animated posters made easy |
| Auto cleanup | Organized workflow, no manual file management |
| Git-friendly | Clean repository, no large media commits |
| Virtual environment | Isolated dependencies, no conflicts |
๐ฆ File Count Examples
| Input Files | Output Files | Total Created |
|---|---|---|
| 1 file | 3 files | 3ร multiplication |
| 5 files | 15 files | 3ร multiplication |
| 13 files | 39 files | 3ร multiplication |
| 100 files | 300 files | 3ร multiplication |
Disk usage: 3ร the processed file sizes (by design)
๐ Quick Reference
First Time Setup
cd image_resizer
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
Every Time After
source venv/bin/activate
python poster_resizer.py
deactivate
Essential Commands
| Command | Purpose |
|---|---|
source venv/bin/activate |
Activate virtual environment |
python poster_resizer.py |
Run the script |
deactivate |
Exit virtual environment |
ls input/ |
Check input files |
ls output/ |
Check processed files |
ls done/ |
Check archived originals |
๐ License
This tool is provided as-is for use with the CustomPosters mod. Please respect the original mod's license and the copyrights of any images you process.
๐ Links
Remember: Each file โ 3 locations โ Same name โ Automatic! ๐