# websocket messages protocol

var,cloud:300;my variable:700,reading-var,writing-var:halloo,Hedgehog.cloud:200
props,Hedgehog[0].x:300;Hedgehog[0].y:150

# instance analysis

### runtime.js

    - greenFlag ()
    - stopAll ()
    - _step()

this.targets[0].isStage === true
this.targets[0]sprite.name === 'Stage' (Global)
this.targets[1]sprite.name === 'Cat' (SpriteName)
this.targets[2]sprite.name === 'Hedgehog' (SpriteName)

// variables are stored in targets[0] (Stage) as Object
JSON.stringify(this.targets[0].variables)

{
  "`jEk@4|i[#Fk?(8x)AV.-my variable": {
    "id": "`jEk@4|i[#Fk?(8x)AV.-my variable",
    "name": "my variable",
    "type": "",
    "isCloud": false,
    "value": "800"
  },
  "MyH,f1S(lRk?3u!Fwl$Z": {
    "id": "MyH,f1S(lRk?3u!Fwl$Z",
    "name": "cloud",
    "type": "",
    "isCloud": false,
    "value": "600"
  }
}


// this.targets[1] props:

currentCostume: 1
direction: -101.30993247402023
draggable: false
dragging: false
drawableID: 5
effects: {color: 0, fisheye: 0, whirl: 0, pixelate: 0, mosaic: 0, …}
id: "NutWL.WThy7bPs2iE9Od"
isOriginal: true
isStage: false
renderer: RenderWebGL {_events: {…}, _eventsCount: 1, _maxListeners: undefined, _gl: WebGLRenderingContext, _allDrawables: Array(6), …}
rotationStyle: "all around"
runtime: Runtime {_events: {…}, _eventsCount: 33, _maxListeners: undefined, targets: Array(4), executableTargets: Array(4), …}
size: 100
sprite: Sprite {runtime: Runtime, blocks: Blocks, name: "Cat", costumes_: Array(2), sounds: Array(1), …}
tempo: 60
textToSpeechLanguage: null
variables: {yj:%?dp#LF2b|Fk8Sxvs: Variable}
videoState: "on"
videoTransparency: 50
visible: true
volume: 100
x: -43.31032838127494
y: -85.26206567625484


this.targets[1].x
this.targets[1].y

this.targets[2].x
this.targets[2].y

this.targets[4].sprite.clones

this.targets[4].sprite.clones[0].x
this.targets[4].sprite.clones[0].y


### scratch3_data.js

getVariable()



