{"id":89197,"date":"2026-06-05T05:18:55","date_gmt":"2026-06-05T02:18:55","guid":{"rendered":"https:\/\/vpesports.com\/minecraft\/mods\/justenoughskins\/"},"modified":"2026-06-05T05:18:55","modified_gmt":"2026-06-05T02:18:55","slug":"justenoughskins","status":"publish","type":"mod","link":"https:\/\/vpesports.com\/minecraft\/mods\/justenoughskins\/","title":{"rendered":"JustEnoughSkins"},"content":{"rendered":"<p># JustEnoughSkins<\/p>\n<p>JustEnoughSkins is a Velocity plugin that checks the player&#8217;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.<\/p>\n<p>## Configuration File<\/p>\n<p>On first startup, the plugin creates:<\/p>\n<p>&#8220;`text<br \/>\nplugins\/justenoughskins\/config.toml<br \/>\n&#8220;`<\/p>\n<p>Default configuration example:<\/p>\n<p>&#8220;`toml<br \/>\n# Enables debug logging.<br \/>\n# false: recommended for normal use.<br \/>\n# true: logs skin URLs, cache keys, signing time, and other details for troubleshooting.<br \/>\nDebug = false<\/p>\n<p># MineSkin API endpoint.<br \/>\n# By default, the plugin requests https:\/\/api.mineskin.org\/v2\/generate.<br \/>\nMineSkinApi = &#8220;https:\/\/api.mineskin.org&#8221;<\/p>\n<p># MineSkin API key.<br \/>\n# Register at https:\/\/account.mineskin.org\/ to get one.<br \/>\n# Empty value still works, but requests may hit stricter rate limits.<br \/>\n# A valid key usually provides more stable quota and permissions.<br \/>\n# Using Cape requires a key with the required permission.<br \/>\nApiKey = &#8220;&#8221;<\/p>\n<p># Maximum time to wait for signing during the profile request, in seconds.<br \/>\n# 3.0: wait up to 3 seconds, making the new skin more likely to apply on first login.<br \/>\n# 1.0: wait less and prioritize login speed; on timeout, the current request will not wait for the signing result.<br \/>\n# <= 0: run the full signing flow synchronously with no background timeout. Slow or unavailable MineSkin service can noticeably delay login.\nWaitingTime = 3.0\n\n# Cape parameter sent during skin generation.\n# Empty value: do not request a cape.\n# Non-empty value: send it as the cape field to MineSkin.\n# The MineSkin API key must support the requested cape capability, otherwise generation may fail.\nCape = \"\"\n\n# URL schemes allowed for original skin URLs that need re-signing.\n# By default, only https is allowed.\nAllowedSchemes = [\"https\"]\n\n# URL domains allowed for original skin URLs that need re-signing.\n# The plugin downloads the skin and sends it to MineSkin only when both the scheme and domain are allowed.\n# Domains must match exactly, for example [\"textures.minecraft.net\"].\n# Empty list means no unsigned or invalid external skin URL will be re-signed.\nAllowedDomains = []\n```\n\n## URL Allowlist\n\nTextures 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.\n\nThe original skin URL must satisfy both rules:\n\n- Its scheme is listed in `AllowedSchemes`.\n- Its domain is listed in `AllowedDomains`.\n\nURLs outside the allowlist are rejected. They are not downloaded and are not submitted to MineSkin.\n\n## Cache\n\nThe plugin calculates a cache key from the original skin URL and stores MineSkin's signed texture result under:\n\n```text\nplugins\/justenoughskins\/cache\/\n```\n\nWhen the same skin URL appears again, the plugin uses the cache first to reduce MineSkin requests and login latency.\n\n## Reloading\n\nAfter a Velocity proxy reload, the plugin reloads `config.toml`. Existing cache entries are not cleared automatically.\n\n<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Sign all skin textures by MineSkin API.<\/p>\n","protected":false},"featured_media":0,"template":"","meta":{"_minecraft_slug":"justenoughskins","_minecraft_project_id":"s8L1OmRb","_minecraft_author":"Dainsleif","_minecraft_license":"GPL-3.0-only","_minecraft_downloads":19,"_minecraft_follows":1,"_minecraft_client_side":"unsupported","_minecraft_server_side":"required","_minecraft_storage_type":"zip","_minecraft_archive_name":"justenoughskins.zip","_minecraft_size_bytes":801901,"_minecraft_version_count":2,"_minecraft_updated_at":"2026-05-15T22:34:23.257467Z","_minecraft_date_created":"2026-04-25T20:29:53.573313Z","_minecraft_date_modified":"2026-04-14T05:16:52.519041Z","_minecraft_project_url":"https:\/\/modrinth.com\/mod\/justenoughskins","_minecraft_icon_attachment_id":0,"_minecraft_imported_at":"2026-06-05T02:18:56+00:00","_minecraft_import_hash":"11da5f29481b9039b101de2c389798f5","_minecraft_versions":"","_minecraft_links":"","_minecraft_gallery":"","_minecraft_api_metadata":""},"mod_category":[867,985],"mod_loader":[986],"minecraft_version":[339,340,341,357,359,360,379,382,385,438,446,449,110,111,112,113,114,115,116,117,118,119,120,46,47,48,49,50,51,52,53,54,55,56,57,58,59,36,60,93,94,101,102,62,37,40,41,73,74,38,78,79,80,81,82,21,22,23,24,25,26,27,28,29,30,31,860,861,862,863,864,83,167,163],"class_list":["post-89197","mod","type-mod","status-publish","hentry","mod_category-social","mod_category-velocity","mod_loader-velocity","minecraft_version-1-10","minecraft_version-1-10-1","minecraft_version-1-10-2","minecraft_version-1-11","minecraft_version-1-11-1","minecraft_version-1-11-2","minecraft_version-1-12","minecraft_version-1-12-1","minecraft_version-1-12-2","minecraft_version-1-13","minecraft_version-1-13-1","minecraft_version-1-13-2","minecraft_version-1-14","minecraft_version-1-14-1","minecraft_version-1-14-2","minecraft_version-1-14-3","minecraft_version-1-14-4","minecraft_version-1-15","minecraft_version-1-15-1","minecraft_version-1-15-2","minecraft_version-1-16","minecraft_version-1-16-1","minecraft_version-1-16-2","minecraft_version-1-16-3","minecraft_version-1-16-4","minecraft_version-1-16-5","minecraft_version-1-17","minecraft_version-1-17-1","minecraft_version-1-18","minecraft_version-1-18-1","minecraft_version-1-18-2","minecraft_version-1-19","minecraft_version-1-19-1","minecraft_version-1-19-2","minecraft_version-1-19-3","minecraft_version-1-19-4","minecraft_version-1-20","minecraft_version-1-20-1","minecraft_version-1-20-2","minecraft_version-1-20-3","minecraft_version-1-20-4","minecraft_version-1-20-5","minecraft_version-1-20-6","minecraft_version-1-21","minecraft_version-1-21-1","minecraft_version-1-21-10","minecraft_version-1-21-11","minecraft_version-1-21-2","minecraft_version-1-21-3","minecraft_version-1-21-4","minecraft_version-1-21-5","minecraft_version-1-21-6","minecraft_version-1-21-7","minecraft_version-1-21-8","minecraft_version-1-21-9","minecraft_version-1-7-10","minecraft_version-1-8","minecraft_version-1-8-1","minecraft_version-1-8-2","minecraft_version-1-8-3","minecraft_version-1-8-4","minecraft_version-1-8-5","minecraft_version-1-8-6","minecraft_version-1-8-7","minecraft_version-1-8-8","minecraft_version-1-8-9","minecraft_version-1-9","minecraft_version-1-9-1","minecraft_version-1-9-2","minecraft_version-1-9-3","minecraft_version-1-9-4","minecraft_version-26-1","minecraft_version-26-1-1","minecraft_version-26-1-2"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>JustEnoughSkins - Minecraft<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vpesports.com\/minecraft\/mods\/justenoughskins\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"JustEnoughSkins - Minecraft\" \/>\n<meta property=\"og:description\" content=\"Sign all skin textures by MineSkin API.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vpesports.com\/minecraft\/mods\/justenoughskins\/\" \/>\n<meta property=\"og:site_name\" content=\"Minecraft\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/justenoughskins\\\/\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/justenoughskins\\\/\",\"name\":\"JustEnoughSkins - Minecraft\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\"},\"datePublished\":\"2026-06-05T02:18:55+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/justenoughskins\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/justenoughskins\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/justenoughskins\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mods\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"JustEnoughSkins\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\",\"name\":\"Minecraft\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"JustEnoughSkins - Minecraft","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vpesports.com\/minecraft\/mods\/justenoughskins\/","og_locale":"en_US","og_type":"article","og_title":"JustEnoughSkins - Minecraft","og_description":"Sign all skin textures by MineSkin API.","og_url":"https:\/\/vpesports.com\/minecraft\/mods\/justenoughskins\/","og_site_name":"Minecraft","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/vpesports.com\/minecraft\/mods\/justenoughskins\/","url":"https:\/\/vpesports.com\/minecraft\/mods\/justenoughskins\/","name":"JustEnoughSkins - Minecraft","isPartOf":{"@id":"https:\/\/vpesports.com\/minecraft\/#website"},"datePublished":"2026-06-05T02:18:55+00:00","breadcrumb":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/justenoughskins\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vpesports.com\/minecraft\/mods\/justenoughskins\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/vpesports.com\/minecraft\/mods\/justenoughskins\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/vpesports.com\/minecraft\/"},{"@type":"ListItem","position":2,"name":"Mods","item":"https:\/\/vpesports.com\/minecraft\/mods\/"},{"@type":"ListItem","position":3,"name":"JustEnoughSkins"}]},{"@type":"WebSite","@id":"https:\/\/vpesports.com\/minecraft\/#website","url":"https:\/\/vpesports.com\/minecraft\/","name":"Minecraft","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vpesports.com\/minecraft\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod\/89197","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod"}],"about":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/types\/mod"}],"wp:attachment":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media?parent=89197"}],"wp:term":[{"taxonomy":"mod_category","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_category?post=89197"},{"taxonomy":"mod_loader","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_loader?post=89197"},{"taxonomy":"minecraft_version","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/minecraft_version?post=89197"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}