Guía para principiantes de Sift Roblox: configuración de Luau y conceptos básicos de la API - Guías

Guía para principiantes de Sift Roblox: configuración de Luau y conceptos básicos de la API

Aprende a instalar Sift para el desarrollo de Roblox, elegir entre Luau y roblox-ts, usar patrones de datos inmutables y evitar errores comunes de la serie v0.x.

2026-08-20
Equipo de Wiki de Sift Roblox
Guía rápida
  • Sift Roblox es una biblioteca de datos inmutables para proyectos de Luau y roblox-ts.
  • Las opciones de instalación incluyen Wally, npm, la Biblioteca de Roblox, Itch.io y las versiones publicadas en GitHub.
  • La compatibilidad con Luau utiliza tipos nativos sin comprobación de tipos en tiempo de ejecución por parte de la biblioteca.
  • La compatibilidad con roblox-ts está disponible mediante el paquete @rbxts/sift y sus definiciones de tipos incluidas.
  • Advertencia sobre las versiones: Sift continúa en la serie v0.x, por lo que las versiones menores pueden incluir cambios incompatibles.

Guía para principiantes de Sift Roblox: qué es

Sift Roblox es una biblioteca para desarrolladores que permite trabajar con datos inmutables en Luau y roblox-ts. No es una experiencia jugable de Roblox, un sistema de personajes ni una mecánica de progresión. En su lugar, ofrece a los creadores funciones de utilidad para actualizar arrays, diccionarios y conjuntos sin modificar directamente los datos originales.

El proyecto está basado en gran medida en la biblioteca Llama, que ya no recibe mantenimiento. Sift tiene un propósito similar, pero utiliza tipos nativos de Luau, pruebas reorganizadas, documentación generada y definiciones de TypeScript integradas. Estas diferencias lo hacen útil para proyectos que necesitan actualizaciones de estado predecibles o utilidades de datos compartidas.

ÁreaEnfoque de SiftBeneficio para principiantes
Propósito principalUtilidades de datos inmutablesActualizaciones de estado más seguras
Lenguajes compatiblesLuau y roblox-tsFlujos de trabajo flexibles para Roblox
Colecciones principalesArrays, diccionarios y conjuntosCubre estructuras de datos comunes
Sistema de tiposTipos nativos de LuauMenor dependencia de paquetes de tipos en tiempo de ejecución
EstabilidadSerie de desarrollo v0.xRevisar los cambios antes de actualizar

La idea central es sencilla: en lugar de cambiar una tabla directamente, crea un resultado actualizado mientras conservas el valor original. Este patrón puede hacer que los datos del inventario, la configuración de los jugadores, los objetos de configuración y el estado replicado sean más fáciles de comprender.

Arrays

Usa utilidades de listas para calcular diferencias, diferencias simétricas, congelar datos, comprobar tipos y barajar elementos.

Diccionarios

Trabaja con datos clave-valor mediante entradas, congelación, congelación profunda y conversión de entradas.

Conjuntos

Cuenta valores y calcula diferencias entre colecciones sin cambiar el conjunto de origen.

Perspectiva para principiantes

Comienza con una estructura de datos pequeña, como un diccionario de configuración o una lista de objetos. Aprender actualizaciones inmutables en un sistema aislado es más sencillo que reescribir todo un proyecto de una vez.

Opciones de instalación para proyectos de Roblox

Sift puede añadirse a un proyecto de desarrollo de Roblox de varias formas. La mejor opción depende de cómo gestione tu equipo las dependencias. Wally es adecuado para flujos de trabajo de paquetes mediante la línea de comandos, los proyectos de roblox-ts pueden usar npm y la instalación manual funciona cuando prefieres colocar el modelo directamente en Studio.

La documentación de referencia indica que Sift está disponible mediante Wally, Itch.io, la Biblioteca de Roblox y las versiones publicadas en GitHub. También señala que el proyecto es gratuito y de código abierto, mientras que una página de Itch.io puede utilizarse para ofrecer patrocinio opcional.

Método de instalaciónMás adecuado paraAcción principalConsideración principal
WallyProyectos de Luau con gestión de dependenciasAñadir Sift a wally.toml y ejecutar wally installRequiere un flujo de trabajo con Wally
npmProyectos de roblox-tsInstalar @rbxts/siftUtiliza herramientas de TypeScript
Biblioteca de RobloxFlujos de trabajo manuales en StudioInsertar la biblioteca en StudioLas actualizaciones se gestionan manualmente
Versiones de GitHubFlujos manuales o automatizadosDescargar una copia de una versión publicadaComprobar cuidadosamente la versión seleccionada
Sincronización con RojoProyectos con control de versionesSincronizar el modelo de Sift mediante RojoRequiere una configuración existente de Rojo

Configuración de Wally

En un proyecto de Wally, añade la dependencia a la sección [dependencies] de wally.toml. El formato documentado utiliza un marcador de versión v0.x:

[dependencies]
Sift = "csqrl/sift@0.0.X"

Reemplaza 0.0.X por la versión que quieras utilizar y, después, ejecuta:

wally install

Mantén visible la versión seleccionada en la configuración de tu proyecto. Esto facilita reproducir el mismo conjunto de dependencias en distintos equipos y reduce la confusión cuando una nueva versión menor cambia el comportamiento.

Configuración de roblox-ts

La documentación indica que Sift incluye definiciones de tipos de TypeScript y puede instalarse para roblox-ts con:

npm install @rbxts/sift

Una importación y una operación básica con un diccionario podrían tener este aspecto:

import Sift from "@rbxts/sift"

const updated = Sift.Dictionary.merge(
  { a: 1, c: 2 },
  { b: 3, c: Sift.None }
)

El resultado documentado es un diccionario que contiene a: 1 y b: 3. El valor Sift.None elimina la entrada c existente durante la combinación.

Instalación manual

La instalación manual consiste en obtener una copia desde la Biblioteca de Roblox o una versión publicada en GitHub y colocarla en Studio. El modelo de Sift también puede sincronizarse con Rojo. Esta opción es accesible para pequeños experimentos, pero los equipos deberían registrar la versión publicada y la fecha de instalación para que las actualizaciones futuras sigan siendo fáciles de gestionar.

Comprobación de versión

Sift todavía se encuentra en la serie v0.x. La documentación advierte que pueden producirse cambios incompatibles cuando aumenta la versión menor, así que prueba las actualizaciones de dependencias antes de utilizarlas en producción.

Primera actualización de datos paso a paso

La forma más rápida de entender Sift es practicar una actualización inmutable cada vez. Comienza con un diccionario pequeño, inspecciona el valor devuelto y confirma que la tabla original siga siendo el valor de referencia para la lógica de tu aplicación.

1

Elige una estructura de datos pequeña

Comienza con configuraciones, un objeto de configuración ligero o una lista corta de objetos. Evita introducir Sift en varios sistemas no relacionados durante tu primera prueba.

2

Selecciona la API de colección correspondiente

Usa funciones de diccionario para registros clave-valor, funciones de array para listas ordenadas y funciones de conjunto para colecciones de valores únicos. Mantener la API alineada con la estructura de datos mejora la legibilidad.

3

Crea el resultado actualizado

Llama a la utilidad de Sift correspondiente y guarda su valor devuelto en una variable nueva. Trata el resultado como el siguiente estado en lugar de editar directamente la tabla original.

4

Verifica el resultado

Comprueba los datos devueltos y prueba casos límite, incluidas claves ausentes, colecciones vacías, valores anidados y entradas repetidas cuando corresponda.

Una combinación de diccionarios es un buen primer ejemplo:

local Sift = require(path.to.Sift)

local original = {
    Coins = 100,
    Title = "Rookie",
}

local updated = Sift.Dictionary.merge(original, {
    Coins = 125,
    Title = Sift.None,
})

En este patrón, el diccionario devuelto puede representar el siguiente estado. El valor de Coins se reemplaza, mientras que Title se elimina mediante Sift.None. La ruta de importación exacta depende del método de instalación y de la estructura del proyecto, así que utiliza la ruta generada por tu flujo de trabajo de dependencias.

OperaciónColecciónUso práctico
differenceArray o conjuntoEncontrar valores presentes en una colección, pero no en las demás
differenceSymmetricArray o conjuntoEncontrar valores exclusivos de uno de los dos lados
freezeArray o diccionarioEvitar cambios directos en una colección
freezeDeepArray o diccionarioCongelar arrays o diccionarios anidados
mergeDiccionarioCombinar actualizaciones y eliminar claves con Sift.None
shuffleArrayDevolver elementos en un orden aleatorio
Punto de comprobación

Si puedes explicar qué valor representa el estado original, cuál representa el estado devuelto y por qué Sift.None elimina una clave de diccionario, entiendes el flujo de trabajo básico.

Comparación de los flujos de trabajo de Luau y roblox-ts

Sift es compatible tanto con Luau como con roblox-ts, pero la experiencia de desarrollo que los rodea es diferente. Los usuarios de Luau suelen trabajar directamente en Roblox Studio o en un proyecto gestionado por Wally. Los usuarios de roblox-ts escriben TypeScript y lo compilan en código compatible con Roblox mediante su cadena de herramientas existente.

La documentación de la biblioteca destaca que Sift utiliza tipos nativos de Luau y no realiza la comprobación de tipos en tiempo de ejecución que se asociaba anteriormente con el enfoque basado en la dependencia antigua. Esto significa que la corrección de los tipos sigue siendo una responsabilidad importante del desarrollador.

Flujo de trabajoLenguajeComando del paqueteNota sobre los tipos
Luau directoLuauWally o instalación manualUtiliza tipos nativos de Luau
roblox-tsTypeScriptnpm install @rbxts/siftIncluye definiciones de tipos de TypeScript
Studio manualLuauBiblioteca de Roblox o copia de una versión publicadaLa estructura de importación depende de la ubicación
Proyecto de RojoLuau o código gestionado por el proyectoSincronizar el modelo mediante RojoSe adapta a flujos con control de versiones

Cómo elegir el punto de partida adecuado

Elige Luau directo si estás aprendiendo a programar en Roblox o quieres el camino más corto desde Studio hasta un ejemplo funcional. Elige roblox-ts si tu proyecto ya utiliza TypeScript y npm. Evita cambiar de lenguaje únicamente para usar Sift; la biblioteca está diseñada para adaptarse a ambos flujos de trabajo.

Para los desarrolladores de Luau, presta atención a la diferencia entre la orientación estática y el comportamiento en tiempo de ejecución. Los tipos nativos pueden ayudar a describir los valores previstos, pero los datos incorrectos aún pueden producir errores en tiempo de ejecución cuando las funciones reciben entradas inesperadas.

Para los desarrolladores de roblox-ts, las definiciones de tipos pueden mejorar la información del editor y facilitar el descubrimiento de las API. Sin embargo, el código compilado aún necesita pruebas a nivel de proyecto, especialmente cuando los datos proceden de la entrada de jugadores, datos guardados, redes o sistemas externos.

Luau primero

Ideal para quienes están aprendiendo Studio, realizan pequeños experimentos o ya organizan sus proyectos alrededor de la programación nativa de Roblox.

roblox-ts primero

Ideal para equipos que utilizan TypeScript, npm y un flujo de desarrollo basado en la compilación.

Mentalidad de migración

Útil al reemplazar utilidades antiguas basadas en Llama, pero revisa las diferencias de la API y prueba cada actualización de estado.

Recordatorio sobre la seguridad de tipos

Sift no sustituye la validación en los límites del sistema. Comprueba los datos cargados desde partidas guardadas, recibidos de clientes o ensamblados a partir de entradas externas antes de pasarlos a las utilidades de colecciones.

Errores comunes y lista de mantenimiento

Un flujo de trabajo de Sift adecuado para principiantes depende menos de memorizar cada función y más de mantener clara la propiedad de los datos. Decide qué sistema es responsable de un valor, crea un resultado nuevo para las actualizaciones y evita mezclar patrones mutables e inmutables sin una razón concreta.

Errores comunes

  • Editar la tabla original después de crear un resultado de Sift: Esto puede dificultar el seguimiento del historial del estado.
  • Usar una función de array para datos de diccionario: Selecciona la API según el tipo de colección, no simplemente según el resultado deseado.
  • Suponer que congelar los datos corrige datos incorrectos: Las funciones de congelación restringen los cambios; no validan el contenido de una colección.
  • Ignorar las estructuras anidadas: La congelación superficial y la congelación profunda tienen efectos diferentes.
  • Actualizar dependencias v0.x sin realizar pruebas: Los incrementos de versión menor pueden incluir cambios incompatibles.
  • Omitir la documentación del proyecto: Registra cómo se instala Sift y qué versión espera tu proyecto.
RiesgoPor qué importaRespuesta recomendada
Se modifican los datos originalesLos sistemas posteriores pueden recibir valores inesperadosTrata los resultados devueltos como el siguiente estado
API de colección incorrectaLa operación puede no coincidir con la estructura de los datosIdentifica primero si es un array, diccionario o conjunto
Se interpreta mal la congelación superficialLas colecciones anidadas pueden seguir siendo modificablesUsa la congelación profunda cuando necesites proteger estructuras anidadas
Llegan entradas no válidas a SiftPueden aparecer errores en tiempo de ejecuciónValida los datos antes de llamar a las utilidades
Cambio de versión no registradoUna actualización v0.x puede modificar el comportamientoFija y prueba la versión que quieras utilizar

Lista de comprobación del proyecto para principiantes:

  • Elige Luau o roblox-ts antes de instalar el paquete
  • Registra la versión de Sift utilizada por el proyecto
  • Prueba una operación con un array, diccionario o conjunto
  • Compara la colección original con el resultado devuelto
  • Revisa la documentación oficial de Sift antes de actualizar

Como referencia, consulta la página oficial de documentación de Sift para revisar las notas de instalación, las indicaciones sobre la estabilidad de v0.x y las utilidades de colecciones disponibles. Conserva este enlace en las notas de tu proyecto junto con la configuración de dependencias.

Hábito de mantenimiento

Al actualizar Sift, prueba las combinaciones, congelaciones, diferencias y cualquier utilidad utilizada por datos guardados o replicados. Las pruebas pequeñas y específicas pueden revelar cambios incompatibles con antelación.

Preguntas frecuentes de la guía para principiantes de Sift Roblox

Q: ¿Sift Roblox es un juego de Roblox jugable?

No. Sift es una biblioteca de datos inmutables para el desarrollo de Roblox. Proporciona utilidades para proyectos de Luau y roblox-ts, no sistemas de juego, avatares, códigos ni progresión dentro del juego.

Q: ¿Cómo puedo instalar Sift con Wally?

Añade Sift a la sección de dependencias de wally.toml utilizando el formato del paquete csqrl/sift, reemplaza el marcador de versión por la versión que quieras y ejecuta wally install.

Q: ¿Sift es compatible con roblox-ts?

Sí. La documentación indica que Sift incluye definiciones de tipos de TypeScript. El paquete puede instalarse con npm install @rbxts/sift.

Q: ¿Qué hace Sift.None?

En el ejemplo documentado de combinación de diccionarios, Sift.None elimina una clave existente del diccionario resultante. Es útil cuando una actualización necesita borrar un valor en lugar de reemplazarlo.

Sift es una opción práctica para los desarrolladores que quieren actualizaciones inmutables estructuradas en proyectos de Roblox. Comienza con un tipo de colección, utiliza el método de instalación que coincida con tu flujo de trabajo y trata las actualizaciones v0.x como cambios que requieren pruebas.

Conclusión

El camino más fiable para principiantes es sencillo: instala Sift, practica una actualización inmutable, verifica el resultado y amplía su uso solo cuando el flujo de datos esté claro.