01 Scylla Core

4 min read

The foundational module of the Scylla framework, providing the bootstrap, module manager, event bus, and core utilities that every other module builds on.

Summary

Scylla Core is the foundational module of the framework: the bootstrap, the module system, the event bus, time, configuration, logging, and a broad utility and data-structure library that every other Scylla module builds on. For the full tour of what Core provides and how the pieces fit together, read the Overview; to wire it into a scene and see it running, start with Getting Started. The rest of this page describes the complete table of contents for Core’s documentation.

Documentation

Getting started

  • Overview. What Scylla Core is, what it offers, and how it fits together.
  • Getting Started. One page that takes you from importing the package to a running framework: installation, setup and configuration, day-one usage (logging, events, time, readiness), and troubleshooting.

Architecture

  • Architecture Overview. The runtime spine: Bootstrap, Core, Module Manager, and modules.
  • Module System. What a module is, how to write one, and how module registration works.
  • Tiered Modules. The module tier convention, why it exists, and what it enforces.
  • Bootstrap Lifecycle. Awake, Start, and the three-phase module initialization pipeline in detail.
  • Event System. How modules (and other features) talk to each other through the event bus.

Core systems

  • Configuration. ScriptableObject configs, JSON config files, and the four-tier configuration fallback.
  • Logging. The debug logger, log categories, log receivers, log filtering, and the framework’s logging contract.
  • Time. ScyllaTime, timescale control, pause, and time-aware code.
  • Scene Manager. Framework persistence across scene loads and managed async loading with progress, an activation gate, and transition hygiene.
  • Persistence Contracts. The interface and registry that make a system’s state saveable without a reference to the Persistence module.

Data structures

  • Collections Overview. The shared collection contract, builder pattern, thread-safety model, and DOTS story, with links to each family below.
  • Queues, Stacks, and Buffers. Queue, deque, priority queue, stack, and ring buffer.
  • Maps and Dictionaries. Hash map, type-keyed map, and the Unity-serializable dictionary.
  • Specialized Structures. Bit array, disjoint set (union-find), and trie.
  • Spatial Structures. Quadtree, octree, BVH, and KD-tree.
  • Graph. Adjacency list, CSR, grid adapter, and the bundled algorithms.
  • Grid. Hex, square, and triangle grid utilities.
  • Object Pools. Object pooling and the framework’s allocation discipline.
  • State Machines. Flat, hierarchical, pushdown, and layered state machines over a shared context.

Utilities

  • 3D Shapes. Procedural mesh components for primitives, walls, stairs and props, with palette coloring and matching colliders.
  • Checksum. Adler32, CRC16, CRC32, Fletcher32, XXHash32, XXHash64.
  • Color. Hex parsing, HSV and HSL, perceptually uniform Oklab and Oklch blending, contrast, and random color generation.
  • Collections. Array and list helpers for growing pooled buffers, searching without allocating, and safe access on empty collections.
  • Compression. GZip, Deflate, BZip2, and Zip providers.
  • Config Files. The ConfigFile data shape behind the JSON configuration system.
  • Crypto. AES-CBC-HMAC, AES-GCM, ChaCha20-Poly1305, and PBKDF2.
  • Debug Draw. Runtime debug visualization for primitives and meshes.
  • Files and IO. File and path utilities, including image file helpers.
  • Geometry. Sizes, ellipses, and the bounding volumes gameplay code tests against: AABB, OBB, sphere, and capsule.
  • Math and Numbers. The math, interpolation, and numeric helpers.
  • Noise. Perlin, OpenSimplex2, Value, ValueCubic, Cellular, and domain warping.
  • Palette. The unified palette and gradient registry.
  • Procedural Map Generation. BSP, cellular automata, drunkard walk, mazes, rooms, Voronoi, noise threshold, winding corridor.
  • Random. Pluggable RNG algorithms and the random helpers built on them.
  • Ranges. Bounded min and max pairs with containment, clamping, interpolation and sampling.
  • Serialization. The JSON engine, attributes, type serializers, and reference tracking.
  • Strings. String utilities, tabular text, and animated text.
  • Time. Frame-cached delta time, rolling frame rate stats, countdown timers, clock formatting, and calendar helpers.
  • System. Reflection and type discovery, interface component queries, threading, platform capabilities, and Resources loading.
  • Tween. The tween engine, easing, sequences, and the built-in extensions.
  • UI. The runtime UI helpers, including the scrolling text areas the debug console is built on.
  • UI Layout. Layout helpers for building UI from code rather than from a prefab.
  • Unity Objects. Cached component lookups, hierarchy search, recursive activation, and transform coordinate helpers.
  • Units. Strongly-typed unit structs for length, mass, time, area, speed, pressure, temperature, and data size.

Reference

  • API Reference. The full C# API surface for Scylla Core and Scylla Core.Editor, generated from XML doc comments by DocFX. Trust this over any signature listed in the prose pages.
  • Changelog. What shipped in each release, newest first.
  • Upgrading. What each kind of release means for an existing project, how to move between versions, and the notes for each release so far.