Getting Started
Use a script package that exposes Creative support. Save your .py file in its userdata/creative folder and add the filename without its extension to the package’s Creative scripts list. Start with a tiny script and confirm it can set one output.
For a native DLL instead, see C++ Creative Scripts.
python
from creative_helper import Combo
from helios import controls
combo = Combo()
def scan(button_bytes, stick_bytes, **kwargs):
return
def iterate(button_bytes, stick_bytes, **kwargs):
combo.buttons = button_bytes
combo.sticks = stick_bytes
if controls.get_actual(controls.BUTTON_14):
combo.set_val(controls.BUTTON_1, 100)Basic Flow
Import Combo, create one Combo instance, attach the current button_bytes and stick_bytes in iterate, then use helper calls such as combo.set_val(...). Test one output before adding timing or multiple buttons.
Multiple Outputs
python
from creative_helper import Combo
from helios import controls
combo = Combo()
def scan(button_bytes, stick_bytes, **kwargs):
return
def iterate(button_bytes, stick_bytes, **kwargs):
combo.buttons = button_bytes
combo.sticks = stick_bytes
if controls.get_actual(controls.BUTTON_14):
combo.set_val(controls.BUTTON_1, 100)
combo.set_val(controls.STICK_1_X, 35)Precision Stick Output
Use set_precision_stick when a stick adjustment needs fractional precision:
python
from creative_helper import Combo
from helios import controls
combo = Combo()
def scan(button_bytes, stick_bytes, **kwargs):
return
def iterate(button_bytes, stick_bytes, **kwargs):
combo.buttons = button_bytes
combo.sticks = stick_bytes
if controls.get_actual(controls.BUTTON_14):
combo.set_precision_stick(controls.STICK_1_X, 37.5)Notes
scanis the beginning-of-frame hook for the unaltered input/frame state.iterateis the end-of-frame hook for normal output writes and frame-result behavior.- Use
set_valfor normal button, trigger, and stick output. set_valalso accepts fractional stick values;set_precision_stickis an explicit axis-only alternative.- Keep
**kwargsinscananditerateso scripts can receive runtime context such as live states. - Avoid changing many outputs at once until the basic script is stable.