nineMinecraft is a joke site.
nineMinecraft is in no way affiliated with Modrinth or 9minecraft. (And frankly, who wants to be affiliated with the latter?)

JustEnoughSkins

Plugin

Sign all skin textures by MineSkin API.

Server Social

14 downloads
1 follower

JustEnoughSkins

JustEnoughSkins is a Velocity plugin that checks the player's skin textures property during the profile request stage. Textures with valid Mojang signatures are kept as is, while unsigned or invalid textures are re-signed through the MineSkin API and cached to avoid repeated requests.

Configuration File

On first startup, the plugin creates:

plugins/justenoughskins/config.toml

Default configuration example:

# Enables debug logging.
# false: recommended for normal use.
# true: logs skin URLs, cache keys, signing time, and other details for troubleshooting.
Debug = false

# MineSkin API endpoint.
# By default, the plugin requests https://api.mineskin.org/v2/generate.
MineSkinApi = "https://api.mineskin.org"

# MineSkin API key.
# Register at https://account.mineskin.org/ to get one.
# Empty value still works, but requests may hit stricter rate limits.
# A valid key usually provides more stable quota and permissions.
# Using Cape requires a key with the required permission.
ApiKey = ""

# Maximum time to wait for signing during the profile request, in seconds.
# 3.0: wait up to 3 seconds, making the new skin more likely to apply on first login.
# 1.0: wait less and prioritize login speed; on timeout, the current request will not wait for the signing result.
# <= 0: run the full signing flow synchronously with no background timeout. Slow or unavailable MineSkin service can noticeably delay login.
WaitingTime = 3.0

# Cape parameter sent during skin generation.
# Empty value: do not request a cape.
# Non-empty value: send it as the cape field to MineSkin.
# The MineSkin API key must support the requested cape capability, otherwise generation may fail.
Cape = ""

# URL schemes allowed for original skin URLs that need re-signing.
# By default, only https is allowed.
AllowedSchemes = ["https"]

# URL domains allowed for original skin URLs that need re-signing.
# The plugin downloads the skin and sends it to MineSkin only when both the scheme and domain are allowed.
# Domains must match exactly, for example ["textures.minecraft.net"].
# Empty list means no unsigned or invalid external skin URL will be re-signed.
AllowedDomains = []

URL Allowlist

Textures with valid Mojang signatures are still accepted as is. The allowlist is checked only when a texture is unsigned or has an invalid signature and needs to be re-signed.

The original skin URL must satisfy both rules:

  • Its scheme is listed in AllowedSchemes.
  • Its domain is listed in AllowedDomains.

URLs outside the allowlist are rejected. They are not downloaded and are not submitted to MineSkin.

Cache

The plugin calculates a cache key from the original skin URL and stores MineSkin's signed texture result under:

plugins/justenoughskins/cache/

When the same skin URL appears again, the plugin uses the cache first to reduce MineSkin requests and login latency.

Reloading

After a Velocity proxy reload, the plugin reloads config.toml. Existing cache entries are not cleared automatically.

External resources


Project members

Dainsleif

Member


Technical information

Project ID