Configuraciones de experiencia te permiten actualizar valores en el juego en tiempo real sin reiniciar servidores:
- Activar y desactivar características, como habilitar o deshabilitar una nueva mazmorras de introducción.
- Ajustar valores en el juego, como la salud de los jefes, la ganancia de experiencia o los precios de los ítems.
- Lanzar contenido por tiempo limitado, como un evento de Halloween que comienza a la medianoche.
Las configuraciones toman la forma de claves y valores. En lugar de utilizar constantes codificadas en tu código, puedes usar la clave para obtener un valor (cadena, número, booleano u objeto JSON) y luego actualizar ese valor cuando lo desees sin publicar una nueva versión de tu experiencia. Los cambios de código requeridos son mínimos:
local ConfigService = game:GetService("ConfigService")
local configSnapshot = ConfigService:GetConfigAsync()
local myValue = configSnapshot:GetValue("my_key_name")Puedes tener hasta 1,000 configuraciones activas en cualquier momento y gestionarlas en Creator Hub o en Roblox Studio.

Crear y editar configuraciones
En la página de Creator Hub Configuraciones para tu experiencia, haz clic en Crear configuración.
Especifica una clave, un tipo, un valor y, opcionalmente, una descripción para ayudarte a ti o a tu equipo a identificar más tarde el propósito de la configuración. Los tipos admitidos son cadena, número, booleano y objeto JSON.
Copia el fragmento de código generado en un script del servidor en tu experiencia, probablemente en ServerScriptService. El código debería verse algo así:
local ConfigService = game:GetService("ConfigService")local configSnapshot = ConfigService:GetConfigAsync()local MY_KEY = "my_key" -- opcional, almacena la clave de configuración como una constantelocal myValue = configSnapshot:GetValue(MY_KEY)Usa el valor como lo harías con cualquier otra variable. Las configuraciones no hacen nada a menos que las utilices dentro de tu código.
Para obtener más información acerca de cómo trabajar con configuraciones en tus scripts, consulta Añadir configuraciones a tu código.
Editar una configuración no es diferente de crear una. Haz clic en el botón Editar y actualiza el valor y la descripción según desees.
Límites
Los valores de configuración tienen los siguientes límites por tipo.
| Tipo | Tamaño máximo |
|---|---|
| Cadena | 100,000 caracteres |
| Número | ±1.7976931348623157e+308, ±2^53 para representaciones enteras exactas |
| Booleano | N/A |
| JSON | 100,000 caracteres |
Publicar configuraciones
Después de que creas una configuración, se mueve a un estado en espera para que puedas probarla antes de que esté disponible públicamente. Los cambios en espera están disponibles para ti y tu equipo en las sesiones de juego de Studio, no para los jugadores en experiencias en vivo. La página de Configuraciones en Creator Hub muestra todos los cambios activos y en espera.

- Después de que pruebes tus cambios en espera, haz clic en Publicar ahora para publicarlo a todos los jugadores en un plazo de cinco minutos. También puedes elegir Publicar en 15 min si prefieres un período de lanzamiento más largo.
- (Recomendado) Agrega un mensaje descriptivo de publicación que indique lo que actualizaste. Este mensaje aparece en la página de Historial y puede ayudar a ti y a tu equipo a identificar más tarde el propósito del cambio.
Crear y editar configuraciones en Studio
Si lo prefieres, puedes crear, editar, poner en espera y publicar configuraciones en Roblox Studio. Haz clic en Archivo > Abrir Configuraciones para abrir el widget. La interfaz de Studio es particularmente conveniente para poner en espera y probar nuevos valores.

Publicar configuraciones en otra experiencia
Solo en Studio, puedes publicar tus configuraciones en otra experiencia, lo que sobrescribe completamente las configuraciones para esa experiencia. Esto puede ser especialmente útil para sincronizar configuraciones de una experiencia de prueba o desarrollo a la experiencia en vivo. Navega a la pestaña Publicadas en el widget de Studio y haz clic en Publicar como en el menú ⋮.

Ver historial y restaurar configuraciones
En la página de Configuraciones, haz clic en Historial para ver las actualizaciones pasadas. Cada actualización tiene la hora y la fecha del cambio, quién realizó el cambio y el mensaje de publicación.

- Expande cada fila para ver la clave, el valor antes del cambio y el valor después de este.
- Usa el cuadro de Buscar clave para buscar claves, no descripciones o valores, solo claves.
La página de Historial también te permite restaurar configuraciones a un estado anterior:
- Haz clic en Restaurar junto al cambio para poner en espera el valor "anterior". Ten en cuenta que restaurar una configuración descarta cualquier cambio en espera existente.
- Regresa a la página de Configuraciones y publica la configuración.
Añadir configuraciones a tu código
La clase principal para trabajar con configuraciones es ConfigService, que obtiene las últimas claves y valores para tu experiencia. ConfigService solo está disponible para scripts del servidor. Intentar llamar a sus métodos desde un script del cliente resultará en un error.
El primer paso para trabajar con configuraciones es recuperar un ConfigSnapshot, los últimos valores de todas las configuraciones en el momento actual. Hay dos métodos para obtener un snapshot:
ConfigService:GetConfigAsync() es para configuraciones globales que deseas aplicar a todos los jugadores en la experiencia:
local ConfigService = game:GetService("ConfigService")local configSnapshot = ConfigService:GetConfigAsync()local bossHealth = configSnapshot:GetValue("bossHealth")ConfigService:GetConfigForPlayerAsync() es para experimentos. Obtiene configuraciones específicas del jugador para que diferentes jugadores puedan obtener diferentes valores.
local ConfigService = game:GetService("ConfigService")local Players = game:GetService("Players")local function onPlayerAdded(player)local playerConfigSnapshot = ConfigService:GetConfigForPlayerAsync(player)local bossHealth = playerConfigSnapshot:GetValue("bossHealth")endPlayers.PlayerAdded:Connect(onPlayerAdded)
En cualquier caso, si la clave no existe, ConfigSnapshot:GetValue() devuelve nil.
Actualizar snapshots
ConfigSnapshots representan un punto en el tiempo, el estado de la configuración cuando solicitaste el snapshot. Para evitar interrumpir el juego, las actualizaciones a una configuración no se propagan automáticamente a los snapshots. En un juego de disparos competitivo, por ejemplo, podrías querer nuevos valores de configuración solo entre rondas para que los atributos de las armas no fluctúen en medio de la partida.
Para obtener los últimos valores manualmente, usa el método ConfigSnapshot:Refresh(). Opcionalmente, conecta una función al evento ConfigSnapshot.UpdateAvailable para refrescar automáticamente:
configSnapshot.UpdateAvailable:Connect(function()
configSnapshot:Refresh()
end)Después de refrescar un snapshot, puedes usar ConfigSnapshot:GetValueChangedSignal() para escuchar cambios en una clave específica para que puedas actualizar el código de tu experiencia:
configSnapshot:GetValueChangedSignal("bossHealth"):Connect(function(newHealthValue)
spawnNewBoss(newHealthValue)
end)Manejo de errores
En raras ocasiones, cuando la configuración no se carga y nunca se ha cargado antes, ConfigService:GetConfigAsync() lanza un error.
Si ConfigService pierde conexión con los servidores de Roblox después de haber sido cargado previamente, ConfigService:GetConfigAsync() devuelve un snapshot con los últimos valores disponibles. Estos snapshots intentan reconectar y disparan el evento UpdateAvailable cuando cargan nuevas actualizaciones con éxito.
Cómo manejes estas situaciones poco comunes depende de ti. Puedes envolver la llamada en un pcall() y tener valores de respaldo en tu código, mostrar un error al jugador y esperar a que el snapshot se reconecte, o alguna otra solución.
Probar configuraciones
ConfigService tiene métodos integrados para probar temporalmente cambios de configuración tanto en Studio como en servidores en vivo sin impactar toda la experiencia.
Para establecer un valor de prueba local, llama a ConfigService:SetTestingValue() desde un script del servidor o a través de la Consola del desarrollador. Los cambios en los valores de prueba activan una actualización de configuración junto con la señal ConfigSnapshot.UpdateAvailable. Al igual que una actualización de producción, debes refrescar los snapshots existentes para obtener el valor de prueba:
local ConfigService = game:GetService("ConfigService")
ConfigService:SetTestingValue("bossHealth", 200)
local configSnapshot = ConfigService:GetConfigAsync()
local bossHealth = configSnapshot:GetValue("bossHealth") -- ¡Ahora 200!Los cambios de prueba se aplican durante la vida del servidor actual y no se propagan a otros servidores. En Studio, se aplican a la sesión de juego actual y no afectan a los servidores en vivo. Puedes limpiar manualmente los cambios de prueba con ConfigService:ClearTestingValue().