Namespace Scylla.Core
Classes
Char
Provides globally reusable single-character constants for common punctuation, whitespace, and separator characters used throughout the Scylla framework. Using these constants avoids boxing and ensures consistency across the codebase.
FileLog
A logging utility that writes log output to files with built-in support for automated file rotation. Ensures efficient log management by limiting log file count and size, as well as performing disk space checks. Supports both plain text and structured JSON output formats for different use cases.
Log
Provides centralized logging functionality for the Scylla framework. This static class allows logging at various levels of severity, from system-level messages to fatal errors, and supports message categorization and filtering.
Conditional Compilation:
The following log methods support conditional compilation to remove log calls at compile time:
-
TraceandDebug: Conditionally compiled withDEBUGsymbol. Calls are automatically removed in release builds (when DEBUG is not defined), providing zero runtime overhead. -
System,Info,Notice,Warning,Error,Fatal: Always compiled (critical or production-level logs).
Benefits: Zero runtime overhead for Trace/Debug in release builds, smaller binary size, better performance.
Num
Provides commonly used numeric constants and utility methods for floating-point comparisons throughout the Scylla framework.
ScyllaBootstrap
Main bootstrap component that initializes and manages the lifecycle of the Scylla Framework. This UnityEngine.MonoBehaviour serves as the root entry point for the entire framework: it configures logging, initializes the ScyllaCore singleton, validates the module scene hierarchy, and orchestrates startup and shutdown of all registered ScyllaModule instances.
ScyllaCore
Central framework manager and primary entry point for the Scylla game framework. Owns the module system lifecycle and provides access to all registered modules. This class is NOT a module itself - it is the authority that MANAGES modules.
Str
Provides globally reusable string constants for common characters, formatting patterns, and escape sequences used throughout the Scylla framework. Using these constants avoids repeated string allocations and ensures consistency across the codebase.
UnityConsoleLog
An ILogReceiver implementation that routes Scylla log output to the Unity built-in console. Each log entry is assembled into a single string and dispatched through the appropriate Unity logging method based on its severity level.
Structs
LogEntry
Represents a fully formatted log entry with all components pre-processed and ready for output. Instances are created by Log and dispatched to every registered ILogReceiver so that formatting work is performed exactly once regardless of how many receivers are active.
ScyllaCore.Meta
Contains compile-time metadata constants that describe the Scylla Framework core. Use these constants in log messages, version checks, and dependency declarations that reference the framework's own identity rather than that of a specific module.
ScyllaDependencyInfoData
A lightweight data container describing a single external dependency of a Scylla component. Carries all metadata needed by the editor tooling to display installation status, version requirements, and quick-install links -- without requiring any Editor-only type references, making it safe to use in runtime assemblies.
Interfaces
ILogReceiver
Defines the contract for objects that receive and output formatted log entries from the Scylla
logging system. Receivers are registered with Log via
Log.RegisterLogReceiver and are called for every log entry that passes the global
filter level.
IScyllaDependencyProvider
Interface for components that declare their external dependencies, enabling automatic discovery and validation of required packages. Implement this interface on Scylla modules or other components that depend on UPM packages, Unity Asset Store assets, third-party libraries, or other Scylla modules.
Enums
LogCategory
Defines the subsystem categories used to classify log messages within the Scylla framework.
LogFileFormat
Specifies the on-disk serialization format used by FileLog when writing log entries to file. The format is selected once at construction time via Format and applies to all files created during that FileLog instance's lifetime.
LogLevel
Represents the severity levels used for logging messages. Levels are ordered from lowest
to highest severity. Log receivers use these values to set their label threshold via
LogLabelLevel, and the static FilterLevel field uses them to suppress
messages below a chosen severity.
ScyllaAAMode
Defines pipeline-agnostic anti-aliasing modes for camera configuration within the Scylla framework. This enum provides a unified abstraction over the different anti-aliasing implementations offered by Unity's render pipelines, allowing camera settings to be configured without coupling to a specific pipeline's API.
ScyllaAAQuality
Defines pipeline-agnostic anti-aliasing quality levels for camera configuration within the Scylla framework. This enum controls the sampling precision and computational intensity of the selected anti-aliasing mode, allowing developers to balance visual quality against GPU performance cost.
ScyllaMaterialSurface
Identifies how a Lit material blends with the frame buffer, in pipeline-neutral terms.
Scylla.Core.Util.MaterialUtil maps this to the matching surface configuration on
the active render pipeline's Lit shader (URP, HDRP, or the Built-in Standard
shader): blend factors, depth write, render queue, and the surface-related keywords.
ScyllaRenderPipeline
Identifies the active Unity render pipeline at runtime. The Scylla framework uses this enum to abstract over pipeline-specific APIs, allowing modules such as the camera and graphics systems to adapt their behavior without requiring compile-time pipeline dependencies throughout the codebase.
ScyllaShadowResolution
Defines pipeline-agnostic shadow map resolution levels for per-light shadow configuration within the Scylla framework. This enum provides a unified abstraction over the different shadow resolution settings offered by Unity's render pipelines, allowing light configuration to remain portable across pipeline changes.
TextAlignment
Defines horizontal text alignment options for formatted text output within the Scylla
framework. Used by text rendering utilities such as TabularText and other
components that need to position text within a fixed-width region.