AI Core
Referencia de la API

Lib: shared y fivem

@aicore-fivem/lib/shared (sin natives, usable en cualquier sitio) y /fivem (natives en ambos lados) - cada utilidad con su firma.

/shared nunca llama a un native: úsalo en código NUI, en resource/common/ y en ambos lados. /fivem llama a natives que existen en ambos lados; las entradas de cliente y servidor lo reexportan.

TypeScript
import { readInt, fail, groupDigits } from "@aicore-fivem/lib/shared";
import { resourceExport, every } from "@aicore-fivem/lib/fivem";

Exports entre recursos (/fivem)

UtilidadQué
registerExport(name, handler): voidRegistra un export, también bajo su gemelo con la primera letra en la otra caja (GetItems y getItems).
resourceExport(resource): CitizenExports[K]Acceso tipado a los exports de otro recurso; un handle por archivo.
optionalExport(resource): CitizenExports[K] | nullLo mismo para un recurso que puede no estar en marcha (null mientras está detenido).
callExport(resource, name, ...args): unknownUn export de un script sin tipos aquí; valida el resultado.
provideExport(resource, name, fn): voidResponde a exports["<resource>"].<name> para un nombre del que este recurso hace provide.
isResourceStarted(resource): booleanSi un recurso está en marcha ahora.

Recursos, planificación, estado (/fivem)

UtilidadQué
every(ms, fn, { active?, name? }): JobEl único planificador del recurso: 0 = cada frame. job.set(active), job.stop(), job.running.
caller(): stringEl recurso que llama a este export (este mismo si es local).
onStop(fn): voidSe ejecuta cuando este recurso se detiene.
new ByResource({ onDrop? }): set(key, value, owner = caller()), get, delete, ownerOf, values, entriesEntradas por recurso que llama, quitadas cuando ese recurso se detiene.
new Reasons(): set(reason, on, owner?), has, any(), onChangeUn estado que se mantiene mientras haya algún motivo (HUD oculto, sincronización pausada).
plateOf(vehicle): stringLa matrícula de un vehículo, recortada y en mayúsculas.
createLocale(), loadLocaleTexts(resource?)Los textos de idioma del recurso (t(key, ...args)), y la tabla completa para una NUI.
new EntityState(key, parse), new PlayerState(key, parse), new GlobalKey(key, parse), new GlobalGroup(prefix, parse)Lectores de state bags: get, onChange; EntityState.getByNetId, GlobalGroup.ids().
stateNumber, stateBoolean, stateStringParsers para las clases de estado.
TypeScript
const fuel = new EntityState("fuel", stateNumber);
const job = every(1000, () => {
  if (cache.vehicle) updateGauge(fuel.get(cache.vehicle) ?? 100);
});

Acciones y entrada (/shared)

UtilidadQué
fail("LANG_KEY")Un rechazo { ok: false, error } para un ActionResult.
isActionOk(reply), replyError(reply, fallback)Leen una respuesta a mano.
readInt(value, min, max), readFinite(value), readId(value), readText(value, max)Lectores estrictos de valores del cliente; null rechaza (NaN, Infinity, decimales).
readVec3(value), readVec4(value)Puntos desde la entrada del cliente o de un export (objetos o vectores de Lua); null ante un valor erróneo.
oneArg(read)Un parser args de un solo valor para callbacks: { args: oneArg(readId) }.
asArgs(value)Un valor validado como resultado de args.
num, int, bool, str, record, vec4 (value, fallback, ...)Lectores del contenido del panel con un valor de respaldo.
isRecord(value)Comprueba un objeto plano.

Números, texto, posiciones (/shared)

UtilidadQué
round(value, decimals = 0), groupDigits(value, separator = ",")1,234,567.
formatWeight(grams)750 g, 1.5 kg.
normalizePlate(text)Una matrícula como clave o para comparar.
stripGameText(text)Quita el HTML y los códigos ~r~ del texto de otro script.
formatText(template, args)Marcadores {0}.
new LangTexts(): set, translate, subscribe, snapshotLos textos de idioma de una página NUI.
logSafe(text, max), previewJson(value, max)Texto y datos no fiables preparados para la consola.
createLogger(resource)info, warn, error con el nombre del recurso delante.
distance(a, b), flatDistance(a, b), headingTo(from, to), nearestOf(items, point, pos, max?)Matemática de vectores (Vec3).
randomInt(min, max), pickRandom(list), rollChance(percent)Utilidades de azar.
sleep(ms), waitFor(check, timeoutMs = 10000, intervalMs = 0)Esperas.
new ServerClock(): sync(serverNow), now(), toLocal(serverTime)El reloj del servidor en un cliente, para cuentas atrás.
gridCell(x, y, size), cellKey(cx, cy)Celdas de cuadrícula para AreaStream.
zoneContains(shape, x, y, z), zoneBounds(shape), polyFromCorners(corners, height)Geometría de zonas.
vehicleTypeOfClass(vehicleClass)Una clase de vehículo al tipo de CreateVehicleServerSetter.
toVehicleProps(value), toVehicleSetup(value)El aspecto de un vehículo desde una entrada no fiable, o null.

Datos del panel (/shared)

UtilidadQué
spec.int(min, max, optional?), spec.num(min, max, optional?)Constructores de especificaciones de datos para schema.ts.
readAccess(record), ACCESS_FIELDS, accessFields(), isPublic(rule), decideAccess(...)Quién puede usar un lugar: trabajos, bandas, rangos, de servicio.
readBlipStyle(value, fallback), BLIP_STYLE_FIELDSUn estilo de blip del panel.
PLACE_PED_SPEC, placePedFields(path?), readPlacePed(value)El NPC de un lugar en el panel.
readRecords(raw, readOne)Un archivo de registros validado una vez.
new RecordObjects(source, file, readOne | records, build): rebuild(key), rebuildAll()Puntos, blips y peds de un archivo de registros; un registro editado reconstruye solo sus propios objetos.
withoutSchemaKey(value)Un archivo de datos sin su clave $schema.

En esta página