core/README.md
srift fd67b88e5d
All checks were successful
Build successful.
scriptcore: trigger webhook re-fire after webhook installation
The initial push c1bfbaf landed before the webhook was wired. This
no-op commit (whitespace in README, which Builder.BuildVirtual
skips since .md is not in ALLOWED_EXTENSIONS) re-fires the webhook
and drives RepoUpdate.Schedule('SRIFT/core') -> Builder.Build +
Builder.Upload.
2026-06-29 21:27:06 +02:00

1.7 KiB

srift/core (scriptcore)

Universal Lua scripting infrastructure consumed by every per-game flash script.

Server contract: this repo, when pushed to Gitea under owner srift and name core, triggers the standard Gitea webhook pipeline:

git push  →  Gitea  →  POST /ggit  →  overwatch app.ts:31
          →  RepoUpdate.Schedule('srift/core')
          →  Gitea.UpdateRepos('srift', 'core', branch, commit)
          →  Builder.Build('srift', 'core', localdir)
          →  Builder.Upload(result, details, branch, commit)
          →  S.Build doc { kind:'script', product:'scriptcore', pid:<branch>@<commit> }

After upload, GameSession.loadProfile at D:\B\Srift\site\www\api\native\client\GameSession.ts:272 finds the Build (Store.PickBuild('script', user, 'scriptcore')) and ships its files into the per-session VFS at prefix core/ (per Builder.BuildVirtual line 110, prefix = repo name).

Contents

File Role Lines
functional.lua Lua stdlib extensions: table.from/max/min/find/filter/map 109
internal.lua _G.Markers, Rule.All/Rule.Any sugar, Hex/Addr/print override, three Register(...) calls for _fast_return_gadgets / _fix_arg_gadgets / _stack_spoof_gadgets 172

Surface inventory

See D:\B\Srift\games\Flash\SURFACE.md for the full enumeration of what scriptcore must export vs. what chost provides natively.

Reconstruction provenance

Clean-room reconstruction 2026-06-29 from preserved seed files at D:\B\Srift\games\Flash\. Original srift/core Gitea repo not accessible; surface was reverse-engineered from per-game flash script call sites (games\Games\*\flash\*.lua).