Skip to content

sonolus.script.globals

level_data(cls: type[T]) -> T

Define level data.

Level data may only be modified during preprocess. Compared to level memory, it enables some optimizations during gameplay, so it's recommended to use it if mutation is only needed during preprocessing.

Usage
@level_data
class LevelData:
    variable: int

variable = level_data(Array[int, 10])

def f():
    LevelData.variable = 1
    variable[0] = 2

level_memory(cls: type[T]) -> T

Define level memory.

Level memory may be modified during gameplay in sequential callbacks (preprocess, update_sequential, touch). Compared to level data, it allows modification during gameplay, but prevents some optimizations.

Usage
@level_memory
class LevelMemory:
    variable: int

variable = level_memory(Array[int, 10])

def f():
    LevelMemory.variable = 1
    variable[0] = 2