Bikininjas-BikininjasCustomPosters icon

BikininjasCustomPosters

Bikininjas Custom Posters with french people and memes for Lethal Company

Last updated 3 days ago
Total downloads 24
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-3.2.0 icon
seechela-CustomPosters

Replaces the default posters in the ship with custom posters. You can add your own images!

Preferred version: 3.2.0

README

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

  1. Download this repository
  2. Copy the BepInEx folder to your Lethal Company directory
  3. 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:

  1. Scans all images and videos in the input/ folder
  2. Calculates the aspect ratio of each file (width/height)
  3. Matches each file to the poster slot with the closest aspect ratio
  4. Generates a complete poster pack ready for the game
  5. 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 .png files
  • Videos are converted to .mp4 files (H.264 video, AAC audio)
  • All files are saved to posters/ or tips/ 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

  1. Media Quality - Use high-resolution images and videos (script downscales)
  2. 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
  3. 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
  4. File Names - Use descriptive names to track which file goes where
  5. Review First - Check the matching report before deploying
  6. 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-aspect to 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

  1. Calculate aspect ratio for each input image
  2. Calculate target ratios for all 6 slots
  3. 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
  4. 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 decorations
    • tips/ - for in-game loading screens
    • output/ - 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:

  1. Resized to the appropriate dimensions (cycling through 5 sizes)
  2. Saved to THREE locations with the same name:
    • ../BepInEx/plugins/BikininjasPosters/posters/
    • ../BepInEx/plugins/BikininjasPosters/tips/
    • output/ (for additional processing)
  3. 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

  1. Use high-quality source media - Script downscales but won't enhance quality
  2. 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
  3. For videos:
    • Keep short (30 seconds or less recommended)
    • Any format works - auto-converted to MP4
    • Consider file size for mod distribution
  4. 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/ to done/
  • 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! ๐ŸŽ‰