Docs
  • 🍎Stream Avatars
    • Introduction
    • ⏩Quick Setup
    • 📸How to Overlay
      • OBS
      • Streamlabs Desktop
      • XSplit
      • Twitch Studio
      • Unlisted / Other
    • ⚛️Extension
    • ⏩Quick Guide
    • 📬Commands
      • ❗!commands
      • ↕️Selection Commands
        • !random
          • !mass random
          • !change {user} {command} random
        • !avatars
          • !avatar {avatar}
          • !change {user} !avatar {avatar}
          • !change {user} !avatar {avatar} {timer}
          • !mass avatar {avatar}
          • !mass avatar {avatar} {timer}
        • !color
        • !gear
        • !nametags
        • !actions
        • !show
      • ↕️Minigames and Fun Commands
        • !basketball
        • !battleroyale
        • !boss
        • !duel {user} {amount}
        • !slots {amount}
        • !bomb {user}
        • !sling {power} {angle}
        • !fart
        • !quote {#}
        • !roll {#d#}
        • !8ball {question}
        • !freeze {user} {seconds}
        • !pin {user} {x%} {y%} {seconds}
        • !attack {user}
        • !dance
        • !hug {user}
        • !throw
        • !explode {target}
        • !bet {amount} {calltype}
        • !scale {target} {size}
        • !spawn game
        • !screensaver {seconds}
        • ↕️!mass {command}
      • ↕️Shop Commands
        • !shop
        • !buy avatars
        • !buy colors
        • !buy gear
        • !buy nametags
        • !buy actions
      • ↕️Currency Commands
        • !currency
        • !currency add {user} {amount}
        • !currency remove {user} {amount}
        • !currency give {user} {amount}
      • ↕️Gifting Commands
        • !gift {user} lootbox {name}
        • !gift {user} avatar {avatar}
        • !gift {user} gear {gear_set} {gear_piece}
        • !gift {user} color {avatar} {color}
        • !gift {user} nametag {nametag}
        • !gift {user} all true
        • !currency add {user} {amount}
      • ↕️Remove Ownership Commands
        • !remove {user} avatar {avatar}
        • !remove {user} gear {gear_set} {gear_piece}
        • !remove {user} color {avatar} {color}
        • !remove {user} nametag {nametag}
        • !currency remove {user} {amount}
      • !extension
      • !hideavatar
      • !mass {command}
      • !change {user} {command}
      • !spawn {title}
      • !whitelist add {user}
      • !blacklist add {user}
      • !mod add {user}
      • !leaderboard
      • !leaderboard exclude {user}
      • !game exclude {user}
      • !sounds
      • !shoutout {user}
    • 📃Application Settings
      • General
      • Login Details
      • Minigames
      • Avatars And Gear
      • Sounds
      • Nametag Settings
      • Import & Export
      • Shop Editing
      • User Editing
      • ❗Unfinished Docs!
      • ❗Bot Commands
        • ❗Custom Commands
      • ❗Edit Lootboxes
      • ❗Backgrounds
      • ❗Bot Commands
    • 🎨Content Creating
      • Creating Avatars
      • Extension Sorting Order
      • Deleting Avatars, Palettes/Colors, and Gear
      • Creating Gear
      • Creating Colors
      • Creating Backgrounds
      • Creating Bosses
      • Creating Player Classes (boss)
      • Creating Nametags
      • Creating Lootboxes
      • Importing Scripts
      • Importing Private Content
      • Creating Custom Redemptions
      • Creating Extension Thumbnails
      • Creating Custom Language Localization
    • 💫Integrations
      • Stream Deck
    • ❓Support
      • New Platform Additions
      • Various Troubleshooting
      • Data Folder
      • Beta Branch
      • F.A.Q
      • Crash Log - Event Viewer
    • 🤝Stream Avatars Partner
  • ⚙️LUA Scripting API
    • Introduction
    • Quick Start
    • API Reference & Tips
      • 🌎Global Functions
        • log
        • wait
        • yield
        • yieldBreak
        • async functions
        • waitForAsync function
        • stopAsync function
        • get
        • set
        • applyImage
        • waitForAnimation
        • webrequest get/post
        • getUser
        • getUsers
        • getUserById
        • getCurrency
        • addCurrency
        • removeCurrency
        • adjustCurrency
        • getBackground
        • getScriptableBlocks
        • getAvatar
        • getAllAvatars
        • runCommand
        • writeChat
        • setProperty
        • getApp
        • save
        • load
        • addEvent
        • removeEvent
        • keepAlive
      • 🔫Events
        • BankController
        • ServiceController
        • Read Chat
        • Websockets
        • Scriptable Block Trigger
        • Platform Donation
        • App State Change
        • Custom Command
        • Basketball Outcome
        • BattleRoyale Outcome
        • Boss Battle Outcome
        • Boss Battle Player Joined
        • Duel Outcome
        • On JumpCatch Star
        • On Background Switch
        • On Avatar Change
        • On New Viewer
        • On InitializeNewViewer
        • On Follower
        • On Raid
        • On Subscriber
        • On Avatar Spawn
        • On Trigger Object
        • On Hotkey
        • On Purchase
      • 📦Classes
        • App
          • globalAvatarScale {get;set}
          • globalNametagScale {get;set}
          • globalChatBubbleScale {get;set}
          • globalNametagStack {get;set}
          • getResolution
          • platformServiceSettings
          • setResolution
          • setFullscreen
          • getStreamer
          • convertPositionToPercent
          • convertPercentToPosition
          • playSound
          • createBomb
          • pitchSound
          • stopSound
          • soundIsPlaying
          • createGameObject
          • getGameObject
          • createChatBubble
          • createWebsocket
          • removeWebsocket
          • sendWebsocketMessage
          • getAppState
          • sha256_base64
          • getUserFromData
          • getIdsFromData
          • deleteUser
          • exportAvatarImage
          • translateCommand
        • User
          • id {get}
          • isActive {get}
          • isFake {get}
          • lastActiveDate {get}
          • secondsSinceLastActive {get}
          • displayName {get}
          • channelName {get}
          • follower {get}
          • vip {get}
          • subscriber {get}
          • moderator {get}
          • platformModerator {get}
          • platform {get}
          • streamer {get}
          • avatar {get;set}
          • scale {get;set}
          • override_scale {get;set}
          • color {get;set}
          • nametag {get;set}
          • getState
          • getGear
          • setGear
          • setPosition
          • getPosition
          • getWearableAvatars
          • getWearableAvatarColors
          • getWearableGearSetPieces
          • getWearableNametags
          • setTemporaryAvatar
          • setTemporaryColor
          • setTemporaryNametag
          • setTemporaryGear
          • setTemporaryNone
          • clearAllTemporarySelections
          • chatBubble
          • runCommand
          • physics
          • saveUserData
          • loadUserData
        • Physics
          • grounded {get;set}
          • setVelocity
        • ObjectPhysics
          • hasTrigger {get}
          • hasRigidBody {get}
          • layer {get;set}
          • kinemetic {get;set}
          • setVelocity
          • addBoxCollider
          • addCircleCollider
          • addBoxTrigger
          • addCircleTrigger
        • Avatar
          • name {get}
          • getGear
          • getGearPieces
          • getColors
          • getActions
        • GameObject
          • image {get}
          • destroy
          • setAngle
          • setPosition
          • getPosition
          • adjustPosition
          • getScale
          • setScale
          • adjustScale
          • physics
        • Image
          • playAnimation
          • stopAnimation
          • flipX
          • flipY
          • sorting
          • anchor
        • ScriptableBlock
          • id {get}
          • position
      • 📤Helper Class
        • createCooldown
        • checkCooldown
        • setCooldown
        • cooldownTimeLeft
        • startsWith
        • replace
        • split
        • randomElement
        • hasValue
        • matchRegex
Powered by GitBook
On this page
  • How to create a new script
  • Editing the Script
  1. LUA Scripting API

Quick Start

API -

PreviousIntroductionNextAPI Reference & Tips

Last updated 2 years ago

How to create a new script

To begin you must create a custom command to hold the script. To do this you will need to navigate to:

  1. Bot Commands

  2. Edit Custom Commands

Next you need to create a new command.

Make sure to give it a good name. Try not to name it after a regular command that already exists. If you want this script to fire based off a command you will have to title it !command_name otherwise the name doesn't matter.

Click the option button on your newly created script, and then select "Edit"

Now that you have a custom command created, you can turn it into an advanced script holder.

  1. Restriction - This is who can activate the command in chat. (This is only relevant if the script is fired by a command in chat. Setting it to caster makes it so only the streamer/broadcaster is able to run this command. If you are linking this to a twitch redemption, leave it on caster.)

  2. Run as - This is the trigger start for your script, simple scripts often run as "On Command Call" while more advanced and technical scripts use "On Connect" (Note: "On Connect" makes the script name and Restriction irrelevant.

  3. Create Script - This will create the script files and open the folder where they are held so that you can edit them. (Note: the .lua is for code, the .json is for storing settings for the code!)

  1. Your Lua script file. You can edit the code in this script while connected! Just press F5 while focusing on the Stream Avatars window to reload the script!

  2. Your JSON settings file. This is where you can have data persist between sessions of running Stream Avatars.

Editing the Script

When you open the script in a text editor, you will be greeted by the boilerplate LUA script which will print out "hello world" to the console log. You can now click Connect in Stream Avatars so your avatars can spawn and your scripts can run!

return function()
    log('hello world'); --this will print out 'hello world'
end

To view the console log, focus Stream Avatars, and press Alt+C, then type: Lua After hitting enter, a console logger will come up showing you the logs. Once it is open, you can close the command input by pressing Alt+C again.

You can close the console log by repeating this process.

To replay the script or refresh and reload it, focus Stream Avatars, and press the F5 key.

If your custom command is set to Run on: "Command Call", you will need to enter the command into chat. In this example you would type: my_new_script

⚙️