360 Secure SkillHub
360 安全技能中心

roblox-luau-core

提供 Luau 核心语言语义、常见错误、JavaScript/Python 迁移陷阱和审查清单,重点覆盖表格、控制流、作用域、字符串模式、闭包与错误处理,并附带详细参考文档。

TabooHarmony
热度 0.00
最近更新 2026-10-18 22:40:32
分类:开发依赖:纯提示词应用场景:代码生成 / 代码审查 / 调试排错 / 概念解释

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add tabooharmony/roblox-brain/roblox-luau-core
Metadata
name
roblox-luau-core
description
Use when writing, editing, or debugging any Luau: tables, control flow, string patterns, scope, closures, and errors ported from JS/Python.
when_to_use
Also for Luau syntax errors, nil indexing, wrong loop or table behavior, string formatting, and reviewing Luau code for correctness.
last_reviewed
"2026-10-14T00:00:00.000Z"
sources
["https://luau.org/syntax","https://create.roblox.com/docs/luau/control-structures","https://luau.org/library","https://raw.githubusercontent.com/Kampfkarren/kampfkarren-luau-guidelines/main/README.md","https://raw.githubusercontent.com/Roblox/creator-docs/main/content/en-us/reference/engine/libraries/vector.yaml"]

Luau Core Language

When to Load

Load for Luau semantics and JS/Python translation. Types: roblox-luau-types; lifecycle: roblox-luau-patterns; engine APIs: domain skills.

Quick Reference

  • Only false and nil are falsy. 0, "", and {} are truthy.
  • Equality does not coerce types. 0 == "0" is false. Inequality is ~=.
  • Array conventions are 1-based. #array is meaningful only for a sequence without nil gaps.
  • Assigning nil removes a table key; assigning a table copies the reference; table.clone is shallow.
  • Dictionary iteration order is unspecified. Do not make behavior depend on it.
  • Dynamic keys require brackets: record[field]. Dot syntax uses a literal identifier.
  • Missing arguments become nil; extra results and arguments can be discarded.
  • Prefer an if expression over condition and a or b when a may be falsy.
  • Locals start at their declaration; repeat locals reach until. Forward-declare mutual recursion.
  • Luau string patterns are not regular expressions. Their syntax and capabilities differ.
  • Backtick interpolation and .. are valid. Join many fragments once in hot loops.
  • NaN does not equal itself and defeats </>; test with x ~= x.
  • Binary data uses the buffer library: fixed size, 0-based offsets, explicit-width reads/writes. Avoid buffer.readinteger/writeinteger (stubs, not released runtime).
  • For Base64, hashing, or compression use EncodingService (buffers, not strings; JSON via HttpService). Details: see full reference.
local label = if enabled then "On" else "Off"
local message = `{name}: {score}`

local byId: {[number]: string} = {}
byId[userId] = name

for index, value in values do
    print(index, value)
end

Translation traps

  • JavaScript ===, !==, null, optional chaining, spread, arrow functions, and array methods are not Luau syntax.
  • Python None, zero-based list assumptions, list comprehensions, exceptions, and implicit tuple behavior do not translate directly.
  • x or fallback tests truthiness, not only absence. It replaces a valid false value.
  • typeof(value) recognizes Roblox datatypes; type(value) reports the underlying Luau type category.

Review

Valid Luau, no nil gaps, no assumed dictionary order, no accidental aliases, no cross-language syntax, no fallbacks hiding false or nil.

Detailed language traps and translation examples: references/full.md