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.
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).