{"items":[{"id":"set_world_time","title":"Set world time","kind":"world","price":20,"choose_any_sat_amount":false,"max_amount":null,"min_rain_amount":null,"max_rain_amount":null,"player_share":0,"share_label":null,"triggers":["player","viewer"],"params":{"time":{"type":"time_hhmm","description":"Clock time HH:MM"},"seconds":{"type":"number","description":"Absolute world seconds"}},"ui":{"type":"text","display":"Set Daytime","text_placeholder":"HH:MM e.g. 12:00","choose_any_sat_amount":0},"requires_online_receiver":false},{"id":"change_music","title":"Change background music","kind":"world","price":80,"choose_any_sat_amount":false,"max_amount":null,"min_rain_amount":null,"max_rain_amount":null,"player_share":0,"share_label":null,"triggers":["player","viewer"],"params":{"name":{"type":"string","description":"Track name from playlist"},"timestamp":{"type":"number","description":"Start offset in seconds"}},"ui":{"type":"select","display":"Change Music","options_from":"music_tracks"},"requires_online_receiver":false},{"id":"global_shout","title":"Global chat shout","kind":"world","price":21,"choose_any_sat_amount":false,"max_amount":null,"min_rain_amount":null,"max_rain_amount":null,"player_share":0,"share_label":null,"triggers":["player","viewer"],"params":{"message":{"type":"string","description":"Chat message (max 200 chars)"}},"ui":{"type":"text","display":"Shout in chat","text_placeholder":"Hello stream!","max_length":200},"requires_online_receiver":false},{"id":"change_crosshair","title":"Change player crosshair","kind":"handicap","price":50,"choose_any_sat_amount":false,"max_amount":null,"min_rain_amount":null,"max_rain_amount":null,"player_share":0.8,"share_label":null,"triggers":["player","viewer"],"params":{"receiver":{"type":"string","description":"Target player username"},"selection":{"type":"string","description":"Crosshair id"}},"ui":{"type":"select","display":"Change Crosshair","options":["crosshair_bitcoin","crosshair_2","crosshair_no","crosshair_original"],"needs_receiver":true},"requires_online_receiver":true},{"id":"buff_speed","title":"Buff movement speed","kind":"buff","price":100,"choose_any_sat_amount":false,"max_amount":null,"min_rain_amount":null,"max_rain_amount":null,"player_share":0,"share_label":null,"triggers":["player","viewer"],"params":{"receiver":{"type":"string","description":"Target player username"}},"ui":{"type":"action","display":"Speed boost (30s)","needs_receiver":true},"requires_online_receiver":true},{"id":"freeze_player","title":"Freeze player","kind":"handicap","price":10,"choose_any_sat_amount":false,"max_amount":null,"min_rain_amount":null,"max_rain_amount":null,"player_share":0.8,"share_label":null,"triggers":["player","viewer"],"params":{"receiver":{"type":"string","description":"Target player username"}},"ui":{"type":"action","display":"Freeze (5s)","needs_receiver":true},"requires_online_receiver":true},{"id":"donate","title":"Donate sats to player","kind":"gift","price":21,"choose_any_sat_amount":true,"max_amount":1000000,"min_rain_amount":null,"max_rain_amount":null,"player_share":1,"share_label":null,"triggers":["player","viewer"],"params":{"receiver":{"type":"string","description":"Player username (required)"},"message":{"type":"string","description":"Optional message to the player"},"amount":{"type":"number","description":"Sats to donate (invoice amount)"}},"ui":{"type":"donate","display":"Donate","text_placeholder":"Optional message","needs_receiver":true,"choose_any_sat_amount":true},"requires_online_receiver":true},{"id":"rain_sats","title":"Rain sats near player","kind":"gift","price":21,"choose_any_sat_amount":true,"max_amount":10000,"min_rain_amount":null,"max_rain_amount":null,"player_share":0,"share_label":"pick up in world (unclaimed → LNBits after 1h)","triggers":["player","viewer"],"params":{"receiver":{"type":"string","description":"Online player to rain near"},"amount":{"type":"number","description":"Sats to rain (invoice amount)"}},"ui":{"type":"rain","display":"Rain sats","needs_receiver":true,"choose_any_sat_amount":true},"requires_online_receiver":true},{"id":"world_billboard","title":"Contested sky billboard","kind":"world","price":5,"choose_any_sat_amount":true,"max_amount":null,"min_rain_amount":21,"max_rain_amount":10000,"player_share":0,"share_label":"optional rain → pick up in world","triggers":["player","viewer"],"params":{"message":{"type":"string","description":"Billboard text (max 50 chars)"},"x":{"type":"number","description":"World X (snapped to tier grid)"},"z":{"type":"number","description":"World Z (snapped to tier grid)"},"rate":{"type":"number","description":"Sats per minute (big≥5, small≥1)"},"duration_min":{"type":"number","description":"Display minutes (≥1)"},"tier":{"type":"string","description":"big (1000 grid) or small (100 grid; not on 1000 anchors)"},"amount":{"type":"number","description":"Invoice sats (= rate × duration_min + optional rain_amount)"},"rain_amount":{"type":"number","description":"Optional sats to rain at billboard XZ (pickup / unclaimed → LNBits)"},"rain_mode":{"type":"string","description":"all | batches_random | batches_continuous (steady ~1 droplet/sec over duration)"},"rain_start":{"type":"string","description":"now, ISO time, or unix timestamp for first rain"},"rain_batch_count":{"type":"number","description":"Optional burst count for batches_random only"},"owner_user_id":{"type":"string","description":"Owner id from session (server-set)"},"owner_username":{"type":"string","description":"Owner username (server-set)"}},"ui":{"type":"billboard_contested","display":"Contested sky billboard","text_placeholder":"Your ad here","max_length":50,"min_duration_min":1,"default_duration_min":5,"duration_presets":[5,15,30,60],"size_note":"small 2.4×1.3 · big 7.2×3.9 (3×) · Y ground+60 / +100","rain":{"enabled":true,"modes":["all","batches_random","batches_continuous"],"default_mode":"all","min_amount":21,"max_amount":10000},"tiers":{"big":{"grid":1000,"min_rate":5,"default_rate":5,"width":7.2,"height":3.9,"y_above_ground":100,"rate_presets":[5,10,15,25,50],"presets_xz":[[0,0],[1000,0],[0,1000],[1000,1000],[-1000,0],[0,-1000]]},"small":{"grid":100,"min_rate":1,"default_rate":1,"width":2.4,"height":1.3,"y_above_ground":60,"rate_presets":[1,2,5,10,21],"excludes_1000_anchors":true,"presets_xz":[[100,100],[200,100],[100,200],[-100,100],[100,-100],[500,500]]}},"default_tier":"big"},"requires_online_receiver":false},{"id":"world_billboard_boost","title":"Boost sky billboard rate","kind":"world","price":5,"choose_any_sat_amount":true,"max_amount":null,"min_rain_amount":null,"max_rain_amount":null,"player_share":0,"share_label":null,"triggers":["player","viewer"],"params":{"billboard_id":{"type":"string","description":"Billboard id to boost"},"new_rate":{"type":"number","description":"New sats/min (must be higher)"},"amount":{"type":"number","description":"Invoice sats (delta)"},"owner_user_id":{"type":"string","description":"Owner id from session (server-set)"}},"ui":{"type":"billboard_boost","display":"Boost billboard rate","needs_owner":true},"requires_online_receiver":false},{"id":"world_billboard_extend","title":"Extend sky billboard time","kind":"world","price":25,"choose_any_sat_amount":true,"max_amount":null,"min_rain_amount":null,"max_rain_amount":null,"player_share":0,"share_label":null,"triggers":["player","viewer"],"params":{"billboard_id":{"type":"string","description":"Billboard id to extend"},"extra_min":{"type":"number","description":"Extra display minutes (≥1)"},"amount":{"type":"number","description":"Invoice sats (= rate × extra_min)"},"owner_user_id":{"type":"string","description":"Owner id from session (server-set)"}},"ui":{"type":"billboard_extend","display":"Extend billboard","needs_owner":true,"min_duration_min":1,"duration_presets":[5,15,30,60]},"requires_online_receiver":false}]}