--- title: IDs y precisión de 64 bits summary: UniverseID, UI manijas, NPCSeed y el límite exacto de los números Lua. section: ui kind: guide status: observed updated: 2026-10-22 tags: ["X4","modding","ids","and","precision"] sources: ["https://wiki.egosoft.com/X4%20Foundations%20Wiki/Modding%20Support/"] --- ## Representaciones de identificación UI maneja, componentes de script IDs y universeID cdata tienen diferentes contratos. Establecer lo que una llamada devuelve y la siguiente espera. En la investigación de X4 9.00, aplicando `ConvertIDTo64Bit` a un ID ya devuelto de forma excéntrica. Una conversión universal precautoria no es un sustituto de los tipos de comprobación. ## Rango exacto del entero Un número Lua de doble base no puede representar cada entero arriba `2^53`. Esto importa para NPCSeed y otros valores de 64 bits. El ejemplo muestra la representación LuaJIT, no una llamada a juego. Define un tipo de almacenamiento y codificación de los CANSical; no pase valores exactos a través de `tonumber` cuando el rango puede superar la doble precisión. `tostring(cdata)` puede contener un tipo de sufijo. ```lua local ffi = require("ffi") -- Синтаксис 64-битного литерала LuaJIT. local exact = ffi.new("uint64_t", 9007199254740993ULL) local text = tostring(exact) -- У tostring(cdata) может быть суффикс типа. ``` ## Vida útil de referencia No almacene un mango de UI temporal como referencia permanente de la nave a través de las cargas. Volver a colocar el objeto en el contexto actual y comprobar la existencia. Un nombre o macro no es un identificador de instancia único. ## Verificación Recorre una gran semilla a través de tu ruta real de lectura/atrapamiento. Incluye objetos inválidos y faltantes, vuelve a abrir el menú y guarda la carga. Compara valores originales y restaurados sin redondeo intermedio.