ScreenInChat
Render images directly inside Minecraft chat using a custom resource pack font
Paper 1.21.x, 1.20.x • Java 21 • Free + Premium License Support
Join our Discord Support
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Video Preview
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Premium Version:
https://builtbybit.com/resources/screeninchat.112830/
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
What is ScreenInChat?
ScreenInChat is a Minecraft Paper plugin that allows you to display real images directly inside the Minecraft chat.
This allows your server to show:
- Player avatars
- Custom profile cards
- Images from URLs
- Local images from the plugin folder
- Pixel-art previews
- Server announcements with images
- Roleplay IDs, cards, photos, documents, posters, and more
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Example Images
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Main Features
- Render images directly in chat
- Generated resource pack with custom pixel glyphs
- No texture pack update required per image
- Local image support from the plugin images folder
- Web image support for premium users
- Player placeholders inside URLs
- Automatic resizing for large images
- Custom image size support for premium users
- Send images to yourself, a player, or the whole server
- Language system with 5 included languages
- Remote license system with free and premium mode
- Clean Paper 1.21.1 support
- Java 21 ready
- Async web image loading to avoid blocking the main server thread
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
How It Works
ScreenInChat creates a custom resource pack with a special font. This font contains small pixel glyphs used to build images in the chat.
The plugin reads an image, resizes it if needed, converts each pixel into a colored text component, and sends it to the player as chat lines.
Technical rendering flow:
Code (Text):
Image file or URL
↓
Image is loaded asynchronously
↓
Image is resized according to limits
↓
Pixels are converted into colored Adventure Components
↓
Custom font glyphs render the pixels in chat
↓
Player sees the image directly inside the chat
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Free vs Premium
| Feature | Free Version | Premium Version |
| Local images | Yes | Yes |
| /sic test | Yes | Yes |
| /sic send <file> | Yes | Yes |
| /sic card | Yes | Yes |
| Automatic resizing | Yes | Yes |
| Maximum image size | 64x64 | 256x256 and more |
| Web images from URL | No | Yes |
| Send to all players | No | Yes |
| Custom manual size | No | Yes |
| Player placeholders in web URLs | No | Yes |
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Free Version
The free version is fully usable for basic local image rendering.
Free includes:
- Render local images from the plugin folder
- Use sample images
- Create image cards
- Automatic image resizing
- Maximum image size: 64x64
Free does not include:
- Web image rendering
- Sending images to the entire server
- Custom manual image sizes
- Premium size limits
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Premium Version
Premium unlocks advanced image delivery features.
Premium can unlock:
- Web images from any supported image URL
- Dynamic player avatars
- Send images to all players
- Custom image sizes
- Higher maximum image size
- URL placeholders such as %player%
- Better roleplay and profile-card workflows
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Use Cases
- Roleplay servers: player IDs, documents, character photos, profile cards
- Survival servers: announcements, event banners, staff messages
- Minigame servers: match previews, icons, winner images
- Networks: lobby promotions, store images, server information
- Cosmetic servers: show item previews or avatar cards
- Community servers: display player heads and custom images in chat
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Requirements
- Minecraft server: Paper 1.2x.x
- Java: Java 21
- Players must load the generated resource pack, or resourcepack gestor
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Installation
- Download the plugin jar.
- Place it inside your server /plugins folder.
- Start the server once.
- The plugin will generate its folders and resource pack.
- Upload or merge the generated resource pack with your server resource pack.
- Configure config.yml.
- Restart the server.
- Test with /sic test checker.
Generated folders:
Code (Text):
plugins/ScreenInChat/
plugins/ScreenInChat/images/
plugins/ScreenInChat/lang/
plugins/ScreenInChat/license.yml
plugins/ScreenInChat/ScreenInChat-pack.zip
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Resource Pack Setup
The plugin generates:
Code (Text):
plugins/ScreenInChat/ScreenInChat-pack.zip
- Manually place it in your Minecraft client resource packs folder for testing.
- Merge it with your main server resource pack.
- Host it online and send it with the server resource-pack system.
If hosted online, configure:
Code (YAML):
resource-pack:
public-url : 'https://your-domain.com/ScreenInChat-pack.zip'
auto-send-on-join : true
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Commands
Main Commands
Code (Text):
/sic help
/sic pack
/sic list
/sic test <gradient|avatar|checker>
/sic send <file>
/sic card <file> <title> | <subtitle>
/sic sendpack <player>
Code (Text):
/sic webview <url>
/sic webview <url> <player>
/sic webview <url> all
/sic webview <url> <player> <size>
/sic webview <url> all <size>
Code (Text):
/sic license activate <key>
/sic license status
/sic license unlink
Code (Text):
/sic license <key>
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Command Examples
Test Images
Code (Text):
/sic test checker
/sic test avatar
/sic test gradient
Put your image here:
Code (Text):
plugins/ScreenInChat/images/my-image.png
Code (Text):
/sic send my-image.png
Code (Text):
/sic card avatar.png Character_Name | Age_18_-_Roleplay_Profile
Code (Text):
/sic webview https://mc-heads.net/avatar/androneko/64.png
Code (Text):
/sic webview https://mc-heads.net/avatar/androneko/64.png Steve
Code (Text):
/sic webview https://mc-heads.net/avatar/%player%/64.png all
Code (Text):
/sic webview https://mc-heads.net/avatar/androneko/128.png all 128
/sic webview https://mc-heads.net/avatar/androneko/128.png Steve 96x96
/sic webview https://mc-heads.net/avatar/androneko/128.png Steve 96 64
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Player Placeholders in URLs
Premium webview supports dynamic placeholders inside the URL.
Available placeholders:
Code (Text):
%player%
%player_name%
{player}
{player_name} <player>
%player_uuid%
{player_uuid}
<player_uuid>
%sender%
%sender_name%
{sender}
{sender_name} <sender>
%sender_uuid%
{sender_uuid}
<sender_uuid>
Code (Text):
/sic webview https://mc-heads.net/avatar/%player%/64.png all
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Supported Image Sources
- Local PNG images
- Local JPG/JPEG images
- Remote PNG images
- Remote JPG/JPEG images
- Minecraft skin/avatar services
Recommended avatar services:
Code (Text):
https://mc-heads.net/avatar/%player%/64.png
https://mc-heads.net/player/%player%/128.png
https://minotar.net/avatar/%player%/64.png
https://crafthead.net/avatar/%player%/64.png
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Permissions
| Permission | Description | Default |
| screeninchat.use | Allows basic image commands | OP |
| screeninchat.admin | Allows administrative commands | OP |
| screeninchat.license.activate | Allows license activation | OP |
| screeninchat.license.status | Allows checking license status | OP |
| screeninchat.license.unlink | Allows unlinking local license data | OP |
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Configuration
Code (YAML):
# ScreenInChat by MCByte
# Support Discord:
# https://discord.com/invite/HeMT8p7UCy
# Plugin language.
# Available languages:
# en_US, es_ES, pt_BR, fr_FR, de_DE
language : en_US
image :
# Default maximum image width when no custom size is provided.
# Free version is limited to 64x64.
# Premium licenses can increase this limit through entitlements.
default-max-width : 64
# Default maximum image height when no custom size is provided.
default-max-height : 64
# Absolute safety cap for image width.
# This prevents extremely large chat messages.
absolute-max-width : 128
# Absolute safety cap for image height.
absolute-max-height : 128
# If true, images smaller than the max size keep their original dimensions.
# If false, images are always resized to the configured target.
keep-original-if-smaller : true
# Pixels with alpha below this value are treated as transparent.
alpha-threshold : 16
# Transparent pixels are blended over this color because chat text cannot render alpha.
transparent-background : ' #000000'
# RGB rounding value.
# Lower = more accurate colors.
# Higher = fewer unique colors and lighter messages.
# Recommended: 8
color-step : 8
# Resize mode.
# nearest = best for pixel art
# bilinear = better for photos
resize-mode : nearest
# Normal spaces between image and card text.
card-gap-spaces : 3
resource-pack :
# Generate the resource pack when the server starts.
generate-on-start : true
# Name of the generated resource pack zip.
output-file : ScreenInChat-pack.zip
# Resource pack format for Minecraft 1.21/1.21.1.
pack-format : 34
# Public URL for the resource pack, if you host it externally.
public-url : ''
# If true, the plugin asks players to load the configured resource pack on join.
auto-send-on-join : false
web :
# Connection timeout for remote image URLs.
connect-timeout-ms : 7000
# Read timeout for remote image URLs.
read-timeout-ms : 15000
# User-Agent used when downloading remote images.
user-agent : 'ScreenInChat/1.2 (Paper 1.21.1 )'
support :
# Support Discord link shown in license/support messages.
discord : 'https://discord.com/invite/HeMT8p7UCy'
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Language System
ScreenInChat includes 5 language files:
Code (Text):
lang/en_US.yml
lang/es_ES.yml
lang/pt_BR.yml
lang/fr_FR.yml
lang/de_DE.yml
Code (YAML):
language : es_ES
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
License System
ScreenInChat supports a simple remote license system.
How it behaves:
- If no license is applied, the plugin automatically runs as Free.
- If a valid license is applied, Premium features are unlocked.
- If a license is applied but does not work, the plugin asks the user to contact Discord support.
License data is stored locally in:
Code (Text):
plugins/ScreenInChat/license.yml
Activate:
Code (Text):
/sic license activate YOUR-LICENSE-KEY
Code (Text):
/sic license status
Code (Text):
/sic license unlink
https://discord.com/invite/HeMT8p7UCy
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Support
Need help installing, configuring, or activating your license?
Join our Discord Support Server
Thank you for using ScreenInChat by MCByte.
Quick facts
- Edition: Minecraft Java
- File type: .jar
- Minecraft versions listed: 1.20, 1.20.6, 1.21
- How to install: Install the matching mod loader (Forge, Fabric or NeoForge) for your Minecraft version. → Download the .jar. → Put it in the .minecraft/mods folder and launch that loader profile.
- Where to get it: Opens on Spigot — not every file is mirrored on our own servers.
Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.
ScreenInChat is a free Minecraft Java mod. Compatible with Minecraft 1.20, 1.20.6, 1.21. Downloaded 29 times (via Spigot). Download it and open it directly in the game.