Tienes razón; pensé que funcionaba de mi lado, pero supongo que no. ![]()
Aquí tienes una alternativa: establecer una propiedad CSS personalizada a través de js.
document.documentElement.style.setProperty(
"--hat-url",
`url(${settings.theme_uploads[settings.hat_type]}`
);
body {
background: var(--hat-url);
}
settings.theme_uploads contendrá una lista de tus subidas.
Por ejemplo:

Luego, según tu configuración, estableces la propiedad personalizada.
Ten en cuenta que, según mis pruebas, no funciona hacer url(var(--hat-url)), por eso pasé url() directamente en la propiedad personalizada.