Create
Return to post

Comparing difference between and

View raw
  • settings
  • {
  • main
  • {
  • Description: "Workshop Vectors Protoyping Tool A.K.A. Workshop in Workshop _ Press F to enter Workshop Mode, connect blocks to executor blocks to do things Red for input, Green for output, Order of paramaters from top to bottom. Ex. Vector(X, Y, Z) -> X(top) Y(middle) Z(bottom) Vector -> Out Made by SpadeInTheDirt"
  • }
  • modes
  • {
  • disabled Assault
  • {
  • Limit Roles: 2 Of Each Role Per Team
  • }
  • disabled Control
  • {
  • Limit Roles: 2 Of Each Role Per Team
  • }
  • disabled Escort
  • {
  • Limit Roles: 2 Of Each Role Per Team
  • }
  • disabled Hybrid
  • {
  • Limit Roles: 2 Of Each Role Per Team
  • }
  • Skirmish
  • {
  • Hero Limit: Off
  • Respawn Time Scalar: 30%
  • enabled maps
  • {
  • Workshop Chamber
  • }
  • }
  • }
  • heroes
  • {
  • General
  • {
  • Ability Cooldown Time: 0%
  • }
  • }
  • }
  • variables
  • {
  • global:
  • 0: menuInfo
  • 1: doAnUpdate
  • 2: tempVals
  • 3: upMenuInfo
  • 4: blockInfos
  • 5: blockSelectPossList
  • 6: blockSelectionTextInfos
  • 7: allCommands
  • 9: counter
  • 10: updatingCommands
  • 11: tempAllCommands
  • 12: nullEntityID
  • player:
  • 0: rememberedFacing
  • 1: cursorPos
  • 2: numberTargetIndexes
  • 3: entryPos
  • 4: entryInfo
  • 5: AclickTarget
  • 6: clickTargets
  • 7: tempCounter
  • 8: insertToTargetsIndex
  • 9: anotherTempCounter
  • 10: selectedTargetInfo
  • 11: blockToUpdate
  • 12: nodeToUpdate
  • 13: editMode
  • 14: tempVals2
  • 15: finalValues
  • 16: tempVals8
  • 17: i3
  • 18: tempVal
  • 19: tempVals5
  • 20: indexPos
  • 21: i2
  • 22: i
  • 23: tempVals
  • 24: initChain
  • 25: endChain
  • 26: blocksNewest
  • 27: blocksOld
  • 28: BR
  • 29: UH
  • 30: anotherInsertToTargetsIndex
  • 31: tempVals4
  • 32: cancer
  • 33: AAAA
  • 34: page
  • 35: blocksMenuTargets
  • 36: tempCounter2
  • 37: tempCounter3
  • 38: tempVals6
  • 39: tempVals7
  • 40: tempVals3
  • 41: toUpdate
  • 42: tempCounter4_1
  • 43: tempCounter4_2
  • 44: nextToUpdate
  • 45: tempVals9
  • 46: tempCounter5
  • 47: finalValuesFirstTwo
  • 48: blocksCopy
  • 49: badConnection
  • 50: encounteredBlocks
  • 51: workshopOn
  • 52: othersVisible
  • }
  • subroutines
  • {
  • 0: disableSchist
  • 1: enableSchist
  • 2: accessVal
  • 3: doOperation
  • 4: numberClickOff
  • 5: openEntry
  • 6: showBlock
  • 7: updateChain
  • 8: hideBlock
  • 9: blockClickOn
  • 10: closeEntry
  • 11: blockClickOff
  • 12: emptyClickOff
  • 13: emptyClickOn
  • 14: updateEntryInfo3
  • 15: blockMenuClickOff
  • 16: updateBlockSelectMenu
  • 18: updateBlockOrderInfo
  • }
  • rule("INIT GLOBALccccccc")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Global.nullEntityID = Last Created Entity;
  • Disable Inspector Recording;
  • Global.blockInfos = Array(Array(Array(Vector(0, 46, 5), Custom String("NUM"), Null, Array(Array(Vector(0, 0, 1.100), Null, Array(0,
  • Custom String("Click To Enter Number")), Null, 0), Array(Vector(-0.800, 0, 1.100), Null, Array(-1, Custom String(
  • "Outputs Number value")), Null)), Null, 0, Array(False, Custom String("number block, drag to move")), 0, False), Array(Vector(
  • 0, 46, 5), Custom String("BOOLEAN"), Null, Array(Array(Vector(0, 0, 1.100), Null, Array(0, Custom String(
  • "click to enter boolean")), Null, 1), Array(Vector(-1.450, 0, 1.100), Null, Array(-1, Custom String("outputs boolean value")),
  • Null)), Null, 0, Array(False, Custom String("boolean block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String(
  • "PLAYER"), Null, Array(Array(Vector(0, 0, 1.100), Null, Array(0, Custom String("click to enter player")), Null, 2), Array(
  • Vector(-1.200, 0, 1.100), Null, Array(-1, Custom String("outputs player value")), Null)), Null, 0, Array(False, Custom String(
  • "player block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("STRING"), Null, Array(Array(Vector(0, 0,
  • 1.100), Null, Array(0, Custom String("click to enter string")), Null, 3), Array(Vector(-1.200, 0, 1.100), Null, Array(-1,
  • Custom String("outputs string value")), Null)), Null, 0, Array(False, Custom String("string block, drag to move")), String(""),
  • False)), Array(Array(Vector(0, 46, 5), Custom String("Add"), Null, Array(Array(Vector(0.800, 0, 1.500), Null, Array(1,
  • Custom String("First Input Value")), Null), Array(Vector(0.800, 0, 0.700), Null, Array(2, Custom String("second Input Value")),
  • Null), Array(Vector(-0.800, 0, 1.100), Null, Array(-1, Custom String("outputs first Input Value + second")), Null)), Null, 1,
  • Array(0, Custom String("addition block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("Sub"), Null, Array(
  • Array(Vector(0.800, 0, 1.500), Null, Array(1, Custom String("First Input Value")), Null), Array(Vector(0.800, 0, 0.700), Null,
  • Array(2, Custom String("Second Input Value")), Null), Array(Vector(-0.800, 0, 1.100), Null, Array(-1, Custom String(
  • "outputs first Input Value - second")), Null)), Null, 1, Array(1, Custom String("subtraction block, drag to move")), 0, False),
  • Array(Vector(0, 46, 5), Custom String("Mul"), Null, Array(Array(Vector(0.800, 0, 1.500), Null, Array(1, Custom String(
  • "First Input Value")), Null), Array(Vector(0.800, 0, 0.700), Null, Array(2, Custom String("Second Input Value")), Null), Array(
  • Vector(-0.800, 0, 1.100), Null, Array(-1, Custom String("outputs first Input Value x second")), Null)), Null, 1, Array(2,
  • Custom String("multiplication block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("Div"), Null, Array(
  • Array(Vector(0.800, 0, 1.500), Null, Array(1, Custom String("First Input Value")), Null), Array(Vector(0.800, 0, 0.700), Null,
  • Array(2, Custom String("Second Input Value")), Null), Array(Vector(-0.800, 0, 1.100), Null, Array(-1, Custom String(
  • "Outputs First Input Value/Second")), Null)), Null, 1, Array(3, Custom String("Division block, drag to move")), 0, False),
  • Array(Vector(0, 46, 5), Custom String("Norm"), Null, Array(Array(Vector(1.100, 0, 1.100), Null, Array(1, Custom String(
  • "Input Vector")), Null), Array(Vector(-1.100, 0, 1.100), Null, Array(-1, Custom String("Outputs the normalized input vector")),
  • Null)), Null, 1, Array(4, Custom String("Normalize block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String(
  • "Dot"), Null, Array(Array(Vector(0.800, 0, 1.500), Null, Array(1, Custom String("First Input Vector")), Null), Array(Vector(
  • 0.800, 0, 0.700), Null, Array(2, Custom String("Second Input Vector")), Null), Array(Vector(-0.800, 0, 1.100), Null, Array(-1,
  • Custom String("Outputs dot product of first and second input vectors")), Null)), Null, 1, Array(5, Custom String(
  • "dot product block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("Cross"), Null, Array(Array(Vector(1.200,
  • 0, 1.500), Null, Array(1, Custom String("First Input Vector")), Null), Array(Vector(1.200, 0, 0.700), Null, Array(2,
  • Custom String("Second Input Vector")), Null), Array(Vector(-1.200, 0, 1.100), Null, Array(-1, Custom String(
  • "outputs cross product of first and second input vectors")), Null)), Null, 1, Array(6, Custom String(
  • "cross product block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("Dir. Towards"), Null, Array(Array(
  • Vector(2, 0, 1.500), Null, Array(1, Custom String("First Input Vector")), Null), Array(Vector(2, 0, 0.700), Null, Array(2,
  • Custom String("Second Input Vector")), Null), Array(Vector(-2, 0, 1.100), Null, Array(-1, Custom String(
  • "outputs direction from first input vector to second")), Null)), Null, 1, Array(7, Custom String(
  • "direction block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("Vect. Towards"), Null, Array(Array(Vector(
  • 2.100, 0, 1.500), Null, Array(1, Custom String("First Input Vector")), Null), Array(Vector(2.100, 0, 0.700), Null, Array(2,
  • Custom String("Second Input Vector")), Null), Array(Vector(-2.100, 0, 1.100), Null, Array(-1, Custom String(
  • "outputs vector from first input vector to second")), Null)), Null, 1, Array(8, Custom String(
  • "vector towards block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("World Vect Of"), Null, Array(Array(
  • Vector(2.200, 0, 1.700), Null, Array(1, Custom String("Input Vector")), Null), Array(Vector(2.200, 0, 1.100), Null, Array(2,
  • Custom String("Input Player - Which Player's frame of reference to convert from")), Null), Array(Vector(2.200, 0, 0.500), Null,
  • Array(3, Custom String("Input Boolean - If true, rotates and translates vector to world perspective, else only rotation")),
  • Null), Array(Vector(-2.200, 0, 1.100), Null, Array(-1, Custom String(
  • "Converts a vector relative to a player to one relative to the world")), Null)), Null, 1, Array(9, Custom String(
  • "World Vector Of block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("Local Vect Of"), Null, Array(Array(
  • Vector(2.100, 0, 1.700), Null, Array(1, Custom String("Input Vector")), Null), Array(Vector(2.100, 0, 1.100), Null, Array(2,
  • Custom String("Input Player - which player's frame of reference to convert to")), Null), Array(Vector(2.100, 0, 0.500), Null,
  • Array(3, Custom String("Input Boolean - If true, rotates and translates vector to world perspective, else only rotation")),
  • Null), Array(Vector(-2.100, 0, 1.100), Null, Array(-1, Custom String(
  • "Converts a vector relative to the world to one relative to a player")), Null)), Null, 1, Array(10, Custom String(
  • "Local Vector Of block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("X Comp"), Null, Array(Array(Vector(
  • 1.250, 0, 1.100), Null, Array(1, Custom String("Input Vector")), Null), Array(Vector(-1.250, 0, 1.100), Null, Array(-1,
  • Custom String("outputs the x component of the input vector")), Null)), Null, 1, Array(11, Custom String(
  • "x component block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("Y Comp"), Null, Array(Array(Vector(
  • 1.250, 0, 1.100), Null, Array(1, Custom String("Input Vector")), Null), Array(Vector(-1.250, 0, 1.100), Null, Array(-1,
  • Custom String("outputs the y component of the input vector")), Null)), Null, 1, Array(12, Custom String(
  • "y component block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("Z Comp"), Null, Array(Array(Vector(
  • 1.250, 0, 1.100), Null, Array(1, Custom String("Input Vector")), Null), Array(Vector(-1.250, 0, 1.100), Null, Array(-1,
  • Custom String("outputs the z component of the input vector")), Null)), Null, 1, Array(13, Custom String(
  • "z component block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("Vector"), Null, Array(Array(Vector(
  • 1.250, 0, 1.700), Null, Array(1, Custom String("Input Number - x comp")), Null), Array(Vector(1.250, 0, 1.100), Null, Array(2,
  • Custom String("Input Number - y comp")), Null), Array(Vector(1.250, 0, 0.500), Null, Array(3, Custom String(
  • "Input Number - z comp")), Null), Array(Vector(-1.250, 0, 1.100), Null, Array(-1, Custom String("Outputs Vector(x, y, z)")),
  • Null)), Null, 1, Array(14, Custom String("Vector Block, drag to move")), 0, False)), Array(Array(Vector(0, 46, 5),
  • Custom String("Horiz. Angle"), Null, Array(Array(Vector(2, 0, 1.100), Null, Array(1, Custom String("Input Vector")), Null),
  • Array(Vector(-2, 0, 1.100), Null, Array(-1, Custom String("outputs horizontal angle of input vector's direction")), Null)),
  • Null, 1, Array(15, Custom String("Horizontal Angle from direction block, drag to move")), 0, False), Array(Vector(0, 46, 5),
  • Custom String("Vert. Angle"), Null, Array(Array(Vector(1.800, 0, 1.100), Null, Array(1, Custom String("Input Vector")), Null),
  • Array(Vector(-1.800, 0, 1.100), Null, Array(-1, Custom String("Outputs vertical angle of input vector's direction")), Null)),
  • Null, 1, Array(16, Custom String("Vertical angle from direction block, drag to move")), 0, False), Array(Vector(0, 46, 5),
  • Custom String("Angle Dir."), Null, Array(Array(Vector(1.650, 0, 1.500), Null, Array(1, Custom String(
  • "Input number - Horizontal angle")), Null), Array(Vector(1.650, 0, 0.700), Null, Array(2, Custom String(
  • "Input number - Vertical angle")), Null), Array(Vector(-1.650, 0, 1.100), Null, Array(-1, Custom String(
  • "outputs direction from horizontal and vertical angles")), Null)), Null, 1, Array(17, Custom String(
  • "Direction from angles block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("Pos. Of"), Null, Array(Array(
  • Vector(1.250, 0, 1.100), Null, Array(1, Custom String("Input Player")), Null), Array(Vector(-1.250, 0, 1.100), Null, Array(-1,
  • Custom String("outputs position of input player")), Null)), Null, 1, Array(18, Custom String(
  • "position of block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("Eye Pos."), Null, Array(Array(Vector(
  • 1.250, 0, 1.100), Null, Array(1, Custom String("Input Player")), Null), Array(Vector(-1.250, 0, 1.100), Null, Array(-1,
  • Custom String("outputs eye position of input player")), Null)), Null, 1, Array(19, Custom String(
  • "Eye Position block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("Facing Dir. Of"), Null, Array(Array(
  • Vector(2.150, 0, 1.100), Null, Array(1, Custom String("Input Player")), Null), Array(Vector(-2.150, 0, 1.100), Null, Array(-1,
  • Custom String("outputs facing direction of input player")), Null)), Null, 1, Array(20, Custom String(
  • "facing direction block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("Velocity Of"), Null, Array(Array(
  • Vector(1.800, 0, 1.100), Null, Array(1, Custom String("Input Player")), Null), Array(Vector(-1.800, 0, 1.100), Null, Array(-1,
  • Custom String("Outputs velocity of input player")), Null)), Null, 1, Array(21, Custom String(
  • "Velocity Of Block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("Throttle"), Null, Array(Array(Vector(
  • 1.400, 0, 1.100), Null, Array(1, Custom String("Input Player")), Null), Array(Vector(-1.400, 0, 1.100), Null, Array(-1,
  • Custom String("Outputs throttle of input player")), Null)), Null, 1, Array(22, Custom String(
  • "Throttle Of block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("Angle Between"), Null, Array(Array(
  • Vector(2.300, 0, 1.500), Null, Array(1, Custom String("First Input Vector")), Null), Array(Vector(2.300, 0, 0.700), Null,
  • Array(2, Custom String("Second Input Vector")), Null), Array(Vector(-2.600, 0, 1.100), Null, Array(-1, Custom String(
  • "Outputs angle between first and second input vectors")), Null)), Null, 1, Array(23, Custom String(
  • "Angle Between block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("Angle Dif."), Null, Array(Array(
  • Vector(1.650, 0, 1.500), Null, Array(1, Custom String("First Input Number - angle")), Null), Array(Vector(1.650, 0, 0.700),
  • Null, Array(2, Custom String("Second Input Number - angle")), Null), Array(Vector(-1.650, 0, 1.100), Null, Array(-1,
  • Custom String("Ouputs difference between first input angle and second")), Null)), Null, 1, Array(24, Custom String(
  • "Angle Difference block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("Distance"), Null, Array(Array(
  • Vector(1.450, 0, 1.500), Null, Array(1, Custom String("First Input Vector")), Null), Array(Vector(1.450, 0, 0.700), Null,
  • Array(2, Custom String("Second Input Vector")), Null), Array(Vector(-1.450, 0, 1.100), Null, Array(-1, Custom String(
  • "outputs distance between first input vector and second")), Null)), Null, 1, Array(25, Custom String(
  • "distance between block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("Sine"), Null, Array(Array(Vector(
  • 0.850, 0, 1.100), Null, Array(1, Custom String("Input Number - angle")), Null), Array(Vector(-0.850, 0, 1.100), Null, Array(-1,
  • Custom String("outputs sine of input angle")), Null)), Null, 1, Array(26, Custom String("sine block, drag to move")), 0,
  • False), Array(Vector(0, 46, 5), Custom String("Cos"), Null, Array(Array(Vector(0.800, 0, 1.100), Null, Array(1, Custom String(
  • "Input Number - angle")), Null), Array(Vector(-0.800, 0, 1.100), Null, Array(-1, Custom String(
  • "Outputs cosine of input angle")), Null)), Null, 1, Array(27, Custom String("cosine block, drag to move")), 0, False), Array(
  • Vector(0, 46, 5), Custom String("Tan"), Null, Array(Array(Vector(0.800, 0, 1.100), Null, Array(1, Custom String(
  • "Input Number - angle")), Null), Array(Vector(-0.800, 0, 1.100), Null, Array(-1, Custom String("Outputs tan of input angle")),
  • Null)), Null, 1, Array(28, Custom String("Tan block, drag to move")), 0, False)), Array(Array(Vector(0, 46, 5), Custom String(
  • "Arcsine"), Null, Array(Array(Vector(1.350, 0, 1.100), Null, Array(1, Custom String("Input number")), Null), Array(Vector(
  • -1.350, 0, 1.100), Null, Array(-1, Custom String("outputs arcsine of input number")), Null)), Null, 1, Array(29, Custom String(
  • "arcsine block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("Arccos"), Null, Array(Array(Vector(1.300, 0,
  • 1.100), Null, Array(1, Custom String("Input number")), Null), Array(Vector(-1.300, 0, 1.100), Null, Array(-1, Custom String(
  • "outputs arccosine of input number")), Null)), Null, 1, Array(30, Custom String("arccosine block, drag to move")), 0, False),
  • Array(Vector(0, 46, 5), Custom String("Arctan"), Null, Array(Array(Vector(1.250, 0, 1.100), Null, Array(1, Custom String(
  • "Input number")), Null), Array(Vector(-1.250, 0, 1.100), Null, Array(-1, Custom String("outputs arctan of input number")),
  • Null)), Null, 1, Array(31, Custom String("Arctan block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String(
  • "Abs. Val."), Null, Array(Array(Vector(1.400, 0, 1.100), Null, Array(1, Custom String("Input number")), Null), Array(Vector(
  • -1.400, 0, 1.100), Null, Array(-1, Custom String("outputs absolute value of input number")), Null)), Null, 1, Array(32,
  • Custom String("absolute value block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("Sign Of"), Null, Array(
  • Array(Vector(1.300, 0, 1.100), Null, Array(1, Custom String("input number")), Null), Array(Vector(-1.300, 0, 1.100), Null,
  • Array(-1, Custom String("outputs sign of input number ex. if negative, returns -1")), Null)), Null, 1, Array(33, Custom String(
  • "sign block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("Modulo"), Null, Array(Array(Vector(1.400, 0,
  • 1.500), Null, Array(1, Custom String("First Input number")), Null), Array(Vector(1.400, 0, 0.700), Null, Array(2,
  • Custom String("Second Input number")), Null), Array(Vector(-1.400, 0, 1.100), Null, Array(-1, Custom String(
  • "outputs first number modulo second (the remainder of the first number/the second)")), Null)), Null, 1, Array(34,
  • Custom String("Modulo block, drag to move")), 0, False), Array(Vector(0, 46, 5), Custom String("Concat"), Null, Array(Array(
  • Vector(1.320, 0, 1.700), Null, Array(1, Custom String("Input Value - 0")), Null), Array(Vector(1.320, 0, 1.100), Null, Array(2,
  • Custom String("Input Value - 1")), Null), Array(Vector(1.320, 0, 0.500), Null, Array(3, Custom String("Input Value - 2")),
  • Null), Array(Vector(-1.320, 0, 1.100), Null, Array(-1, Custom String("outputs 0, 1 and 2 concatenated together")), Null)),
  • Null, 1, Array(35, Custom String("Concatenate Block, drag to move")), 0, False)), Array(Array(Vector(0, 46, 5), Custom String(
  • "Camera"), Null, Array(Array(Vector(0.800, 0, 2), Null, Array(1, Custom String("Input Player to start camera for")), Null),
  • Array(Vector(0, 0, 2), Null, Array(2, Custom String("Eye position of camera")), Null), Array(Vector(-0.800, 0, 2), Null, Array(
  • 3, Custom String("Position for camera to look at")), Null)), Null, -1, Array(0, Custom String("Camera block, drag to move")),
  • 0, True), Array(Vector(0, 46, 5), Custom String("Start Facing"), Null, Array(Array(Vector(0.800, 0, 2), Null, Array(1,
  • Custom String("Input player to start facing for")), Null), Array(Vector(0, 0, 2), Null, Array(2, Custom String(
  • "Direction to start facing")), Null), Array(Vector(-0.800, 0, 2), Null, Array(3, Custom String("Turn speed")), Null)), Null,
  • -2, Array(0, Custom String("start facing block, drag to move")), 0, True), Array(Vector(0, 46, 5), Custom String("Put Effect"),
  • Null, Array(Array(Vector(0.500, 0, 2), Null, Array(1, Custom String("Effect position")), Null), Array(Vector(-0.500, 0, 2),
  • Null, Array(2, Custom String("radius of effect")), Null)), Null, -3, Array(0, Custom String(
  • "sphere effect block, drag to move")), 0, True), Array(Vector(0, 46, 5), Custom String("Put Beam Effect"), Null, Array(Array(
  • Vector(0.500, 0, 2), Null, Array(1, Custom String("Start Position of Beam")), Null), Array(Vector(-0.500, 0, 2), Null, Array(2,
  • Custom String("End Position of Beam")), Null)), Null, -4, Array(0, Custom String("Beam effect block, drag to move")), 0, True),
  • Array(Vector(0, 46, 5), Custom String("Display Text"), Null, Array(Array(Vector(0.800, 0, 2), Null, Array(1, Custom String(
  • "Header Text")), Null), Array(Vector(0, 0, 2), Null, Array(2, Custom String("Subheader Text")), Null), Array(Vector(-0.800, 0,
  • 2), Null, Array(3, Custom String("Text")), Null)), Null, -5, Array(0, Custom String("Display Info block, drag to move")), 0,
  • True), Array(Vector(0, 46, 5), Custom String("Put InWorld text"), Null, Array(Array(Vector(0.500, 0, 2), Null, Array(1,
  • Custom String("Text")), Null), Array(Vector(-0.500, 0, 2), Null, Array(2, Custom String("Position")), Null)), Null, -6, Array(
  • 0, Custom String("Put Inworld text block, drag to move")), 0, True)));
  • Global.menuInfo = Array(Array(Array(False, Array(Custom String("- . |0 1 2 3 4 5 6 7 8 9|> X\n "))), Array(False, Array(
  • Custom String("|T F|> X\n "))), Array(True, 0), Array(False, Array(Custom String(
  • "` 1 2 3 4 5 6 7 8 9 0 - =\n q w e r t y u i o p [ ] \\ \n a s d f g h j k l ; '\n z x c v b n m , . /\n [==]\n > X\n
"),
  • Custom String(
  • "~ ! @ # $ % ^ & * ( ) _ +\n Q W E R T Y U I O P { } |\n A S D F G H J K L : \"\n Z X C V B N M < > ?\n [==]\n > X\n 
")))),
  • Array(Array(Vector(3.140, 0, 1.800), Vector(2.770, 0, 1.800), Vector(2.120, 0, 1.800), Vector(1.690, 0, 1.800), Vector(1.250,
  • 0, 1.800), Vector(0.800, 0, 1.800), Vector(0.310, 0, 1.800), Vector(-0.080, 0, 1.800), Vector(-0.570, 0, 1.800), Vector(-0.990,
  • 0, 1.800), Vector(-1.450, 0, 1.800), Vector(-1.880, 0, 1.800), Vector(-2.460, 0, 1.800), Vector(-2.920, 0, 1.800)), Array(
  • Vector(0.570, 0, 1.800), Vector(0.220, 0, 1.800), Vector(-0.300, 0, 1.800), Vector(-0.740, 0, 1.800)), Array(Vector(0, 0,
  • 10.620), Vector(0, 0, 9.880), Vector(0, 0, 9.140), Vector(0, 0, 8.400), Vector(0, 0, 7.660), Vector(0, 0, 6.920), Vector(0, 0,
  • 6.180), Vector(0, 0, 5.140), Vector(0, 0, 4.700), Vector(0, 0, 3.960), Vector(0, 0, 3.220), Vector(0, 0, 2.480), Vector(0, 0,
  • 1.740), Vector(0, 0, 1)), Array(Vector(3.100, 0, 4.450), Vector(2.750, 0, 4.450), Vector(2.300, 0, 4.450), Vector(1.750, 0,
  • 4.450), Vector(1.290, 0, 4.450), Vector(0.820, 0, 4.450), Vector(0.300, 0, 4.450), Vector(-0.120, 0, 4.450), Vector(-0.550, 0,
  • 4.450), Vector(-1.020, 0, 4.450), Vector(-1.460, 0, 4.450), Vector(-1.830, 0, 4.450), Vector(-2.370, 0, 4.450), Vector(2.960,
  • 0, 3.840), Vector(2.300, 0, 3.840), Vector(1.760, 0, 3.840), Vector(1.250, 0, 3.840), Vector(0.790, 0, 3.840), Vector(0.300, 0,
  • 3.840), Vector(-0.220, 0, 3.840), Vector(-0.610, 0, 3.840), Vector(-1.030, 0, 3.840), Vector(-1.520, 0, 3.840), Vector(-2.070,
  • 0, 3.840), Vector(-2.600, 0, 3.840), Vector(-3.080, 0, 3.840), Vector(2.960, 0, 3.230), Vector(2.460, 0, 3.230), Vector(1.920,
  • 0, 3.230), Vector(1.480, 0, 3.230), Vector(0.940, 0, 3.230), Vector(0.410, 0, 3.230), Vector(-0.010, 0, 3.230), Vector(-0.470,
  • 0, 3.230), Vector(-0.920, 0, 3.230), Vector(-1.390, 0, 3.230), Vector(-1.870, 0, 3.230), Vector(2.960, 0, 2.620), Vector(2.460,
  • 0, 2.620), Vector(1.970, 0, 2.620), Vector(1.460, 0, 2.620), Vector(0.910, 0, 2.620), Vector(0.480, 0, 2.620), Vector(-0.050,
  • 0, 2.620), Vector(-0.730, 0, 2.620), Vector(-1.310, 0, 2.620), Vector(-1.890, 0, 2.620), Vector(2.690, 0, 2.010), Vector(2.960,
  • 0, 1.400), Vector(2.510, 0, 1.400))), Array(Array(Array(-2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0)), Array(Array(True, False,
  • 69, 69)), Array(Append To Array(All Players(All Teams), Array(69, 69))), Array(Array(Custom String("`"), Custom String("1"),
  • Custom String("2"), Custom String("3"), Custom String("4"), Custom String("5"), Custom String("6"), Custom String("7"),
  • Custom String("8"), Custom String("9"), Custom String("0"), Custom String("-"), Custom String("="), Custom String("q"),
  • Custom String("w"), Custom String("e"), Custom String("r"), Custom String("t"), Custom String("y"), Custom String("u"),
  • Custom String("i"), Custom String("o"), Custom String("p"), Custom String("["), Custom String("]"), Custom String("\\"),
  • Custom String("a"), Custom String("s"), Custom String("d"), Custom String("f"), Custom String("g"), Custom String("h"),
  • Custom String("j"), Custom String("k"), Custom String("l"), Custom String(";"), Custom String("'"), Custom String("z"),
  • Custom String("x"), Custom String("c"), Custom String("v"), Custom String("b"), Custom String("n"), Custom String("m"),
  • Custom String(","), Custom String("."), Custom String("/"), Custom String(" "), 69, 69), Array(Custom String("~"),
  • Custom String("!"), Custom String("@"), Custom String("#"), Custom String("$"), Custom String("%"), Custom String("^"),
  • Custom String("&"), Custom String("*"), Custom String("("), Custom String(")"), Custom String("_"), Custom String("+"),
  • Custom String("Q"), Custom String("W"), Custom String("E"), Custom String("R"), Custom String("T"), Custom String("T"),
  • Custom String("U"), Custom String("I"), Custom String("O"), Custom String("P"), Custom String("{"), Custom String("}"),
  • Custom String("|"), Custom String("A"), Custom String("S"), Custom String("D"), Custom String("F"), Custom String("G"),
  • Custom String("H"), Custom String("J"), Custom String("K"), Custom String("L"), Custom String(":"), Custom String("\""),
  • Custom String("Z"), Custom String("X"), Custom String("C"), Custom String("V"), Custom String("B"), Custom String("N"),
  • Custom String("M"), Custom String("<"), Custom String(">"), Custom String("?"), Custom String(" "), 69, 69))));
  • disabled Create In-World Text(All Players(All Teams), Custom String("NUzzZLES YOW nECKY WECKY"), Vector(0, 46, 0), 8, Clip Against Surfaces,
  • Visible To Position and String, Yellow, Default Visibility);
  • Global.upMenuInfo = Array(Vector(0, 0, 10.620), Vector(0, 0, 9.880), Vector(0, 0, 9.140), Vector(0, 0, 8.400), Vector(0, 0, 7.660),
  • Vector(0, 0, 6.920), Vector(0, 0, 6.180), Vector(0, 0, 5.140), Vector(0, 0, 4.700), Vector(0, 0, 3.960), Vector(0, 0, 3.220),
  • Vector(0, 0, 2.480), Vector(0, 0, 1.740), Vector(0, 0, 1));
  • Global.tempVals = Global.menuInfo[1];
  • Global.tempVals[2] = Mapped Array(Global.upMenuInfo, Current Array Element + Vector(0, 0, 0.060 * (12 - Count Of(All Players(
  • All Teams)))));
  • Global.menuInfo[1] = Global.tempVals;
  • Global.blockSelectPossList = Array(Vector(-14.700, 46, 2.690), Vector(-14.700, 46, 1.980), Vector(-14.700, 46, 1.270), Vector(
  • -14.700, 46, 0.560), Vector(-14.700, 46, -0.150), Vector(-14.700, 46, -0.860), Vector(-14.700, 46, -1.570), Vector(-14.700, 46,
  • -2.280), Vector(-14.700, 46, -2.990), Vector(-14.700, 46, -3.700), Vector(-14.700, 46, -4.410), Vector(-14.700, 46, -5.120),
  • Vector(-14.700, 46, -5.830), Vector(-14.700, 46, -6.540), Vector(-14.700, 46, -7.250), Vector(-14.700, 46, -9.340), Vector(
  • -14.700, 46, -10.030));
  • Global.blockSelectionTextInfos = Array(Custom String(" _______________________\n "), Custom String(" _______________________\n "),
  • Custom String(" _______________________\n "), Custom String(" _______________________\n "), Custom String(
  • " _______________________\n "));
  • disabled Global.blockSelectPossList = Array(Null, Null);
  • For Global Variable(I, 0, 15, 1);
  • disabled Global.blockSelectionTextInfos = Mapped Array(Global.blockSelectionTextInfos, Custom String("{1}o-{0}\n ",
  • Global.blockInfos[Current Array Index][15 - Global.I - 1][1] ? Global.blockInfos[Current Array Index][15 - Global.I - 1][1] : String(
  • ""), Current Array Element));
  • Global.blockSelectionTextInfos = Mapped Array(Global.blockSelectionTextInfos, Custom String("{1}{0}\n ",
  • Global.blockInfos[Current Array Index][15 - Global.I - 1][1] ? Custom String("o-{0}",
  • Global.blockInfos[Current Array Index][15 - Global.I - 1][1]) : String(""), Current Array Element));
  • End;
  • Global.blockSelectionTextInfos = Mapped Array(Global.blockSelectionTextInfos, Custom String(
  • "{1}_______________________\n {0}\n <\n >", Array(Custom String("VALUES"), Custom String("OPERATIONS PG1"), Custom String(
  • "OPERATIONS PG2"), Custom String("OPERATORS PG3"), Custom String("EXECUTORS"))[Current Array Index], Current Array Element));
  • Create In-World Text(Filtered Array(All Players(All Teams), Current Array Element.editMode && Current Array Element.page == 0),
  • Global.blockSelectionTextInfos[0], Vector(-17.500, 46, -10.200), 1.700, Clip Against Surfaces, Visible To, Green,
  • Default Visibility);
  • Create In-World Text(Filtered Array(All Players(All Teams), Current Array Element.editMode && Current Array Element.page == 1),
  • Global.blockSelectionTextInfos[1], Vector(-17.500, 46, -10.200), 1.700, Clip Against Surfaces, Visible To, Red,
  • Default Visibility);
  • Create In-World Text(Filtered Array(All Players(All Teams), Current Array Element.editMode && Current Array Element.page == 2),
  • Global.blockSelectionTextInfos[2], Vector(-17.500, 46, -10.200), 1.700, Clip Against Surfaces, Visible To, Red,
  • Default Visibility);
  • Create In-World Text(Filtered Array(All Players(All Teams), Current Array Element.editMode && Current Array Element.page == 3),
  • Global.blockSelectionTextInfos[3], Vector(-17.500, 46, -10.200), 1.700, Clip Against Surfaces, Visible To, Red,
  • Default Visibility);
  • Create In-World Text(Filtered Array(All Players(All Teams), Current Array Element.editMode && Current Array Element.page == 4),
  • Global.blockSelectionTextInfos[4], Vector(-17.500, 46, -10.200), 1.700, Clip Against Surfaces, Visible To, Purple,
  • Default Visibility);
  • "menu options"
  • Create In-World Text(All Players(All Teams), Icon String(Trashcan), Vector(18.500, 46, -11), 2, Clip Against Surfaces,
  • Visible To Position and String, White, Default Visibility);
  • Create In-World Text(Filtered Array(All Players(All Teams), Current Array Element.workshopOn), Icon String(Checkmark), Vector(17,
  • 46, -11), 2, Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create In-World Text(Filtered Array(All Players(All Teams), !Current Array Element.workshopOn), Icon String(X), Vector(17, 46,
  • -11), 2, Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create In-World Text(Filtered Array(All Players(All Teams), Current Array Element.othersVisible), Icon String(Eye), Vector(15.500,
  • 46, -11), 2, Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create In-World Text(Filtered Array(All Players(All Teams), !Current Array Element.othersVisible), Icon String(Circle), Vector(
  • 15.500, 46, -11), 2, Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • }
  • }
  • rule("INIT PLAYER")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • actions
  • {
  • "put effect command"
  • Create Effect(Is True For Any(Event Player.finalValues, Current Array Element[0] == -3) ? All Players(All Teams) : False, Sphere,
  • White, First Of(Filtered Array(Event Player.finalValues, Current Array Element[0] == -3))[1][0], First Of(Filtered Array(
  • Event Player.finalValues, Current Array Element[0] == -3))[1][1], Visible To Position and Radius);
  • "put beam command"
  • Create Beam Effect(Is True For Any(Event Player.finalValues, Current Array Element[0] == -4) ? All Players(All Teams) : False,
  • Good Beam, First Of(Filtered Array(Event Player.finalValues, Current Array Element[0] == -4))[1][0], First Of(Filtered Array(
  • Event Player.finalValues, Current Array Element[0] == -4))[1][1], White, Visible To Position and Radius);
  • "display info command"
  • Create HUD Text(Is True For Any(Event Player.finalValues, Current Array Element[0] == -5) ? Event Player : 0, First Of(
  • Filtered Array(Event Player.finalValues, Current Array Element[0] == -5))[1][0], First Of(Filtered Array(
  • Event Player.finalValues, Current Array Element[0] == -5))[1][1], First Of(Filtered Array(Event Player.finalValues,
  • Current Array Element[0] == -5))[1][2], Left, 1, White, White, White, Visible To and String, Default Visibility);
  • "inworld text"
  • Create In-World Text(Is True For Any(Event Player.finalValues, Current Array Element[0] == -6) ? All Players(All Teams) : False,
  • First Of(Filtered Array(Event Player.finalValues, Current Array Element[0] == -6))[1][0], First Of(Filtered Array(
  • Event Player.finalValues, Current Array Element[0] == -6))[1][1], 2, Clip Against Surfaces, Visible To Position and String,
  • White, Default Visibility);
  • "entry text result"
  • Create In-World Text(Event Player.entryPos == True ? Event Player : False, Event Player.entryInfo[2],
  • Event Player.entryPos + Vector(0, 0, -0.500), 1.500, Clip Against Surfaces, Visible To Position and String, White,
  • Default Visibility);
  • "entry text"
  • Create In-World Text(Event Player.entryPos == True ? Event Player : False, Is Button Held(Event Player, Ability 1) ? Last Of(
  • Event Player.entryInfo[3]) : First Of(Event Player.entryInfo[3]), Event Player.entryPos, 1.500, Clip Against Surfaces,
  • Visible To Position and String, White, Default Visibility);
  • disabled Create HUD Text(Event Player, Custom String("{0}", Event Player.cursorPos + Vector(0, 0, 11)), Null, Null, Left, 0, Green, White,
  • White, Visible To and String, Default Visibility);
  • disabled Create HUD Text(Event Player, Custom String("{0}", Event Player.cursorPos), Null, Null, Left, 0, White, White, White,
  • Visible To and String, Default Visibility);
  • Event Player.clickTargets = Array(Null, Array(Array(Vector(18.500, 46, -9.800), Custom String(
  • "Trash can - move a block here to destroy")), Array(0, 1), 0), Array(Array(Vector(17, 46, -9.800), Custom String(
  • "Workshop On - Turn On/Off WiW effects")), Array(0, 2), 0), Array(Array(Vector(15.500, 46, -9.800), Custom String(
  • "Others Visible - Turn On/Off Visibility Of Other's workshops")), Array(0, 3), 0));
  • Event Player.othersVisible = True;
  • Event Player.workshopOn = True;
  • Event Player.entryPos = Null;
  • Event Player.selectedTargetInfo = Null;
  • Event Player.blocksNewest = Empty Array;
  • disabled Event Player.clickTargets = Empty Array;
  • disabled Event Player.clickTargets = Array();
  • "will flip to false on existence"
  • Event Player.editMode = True;
  • Event Player.cursorPos = Up + Down;
  • Chase Player Variable At Rate(Event Player, cursorPos, Vector(Max(-21, Min(21, Horizontal Facing Angle Of(Event Player))), 46, Max(
  • -11.750, Min(11.750, Null - Vertical Facing Angle Of(Event Player)))), 10000, Destination and Rate);
  • "CURSOR ALL"
  • disabled Create Effect(All Players(All Teams), Sphere, White, Event Player.cursorPos, 0.180, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String("{0}{1}", Hero Icon String(Hero Of(Event Player)), Event Player),
  • Event Player.cursorPos + Vector(0, 0, -0.500), 0.900, Clip Against Surfaces, Visible To and Position, White,
  • Default Visibility);
  • "CURSOR FOR OTHERS"
  • Create Effect(Remove From Array(All Players(All Teams), Event Player), Sphere, White, Event Player.cursorPos, 0.180,
  • Visible To Position and Radius);
  • "CURSOR FOR PLAYER"
  • Create Effect(Event Player, Sphere, Purple, Event Player.cursorPos, 0.180, Visible To Position and Radius);
  • "selection "
  • Create Effect(Event Player.selectedTargetInfo ? Event Player : Empty Array, Sphere, Yellow, Event Player.selectedTargetInfo[0],
  • 0.350, Visible To Position and Radius);
  • "cursor target"
  • Create Effect(Event Player.AclickTarget ? Event Player : Empty Array, Sphere, Blue, Event Player.AclickTarget[0], 0.350,
  • Visible To Position and Radius);
  • "selection info"
  • disabled Create HUD Text(Event Player, Custom String("{0} | {1} | {2}", Event Player.selectedTargetInfo[1][0],
  • Event Player.selectedTargetInfo[1][1], Event Player.selectedTargetInfo[1][2]), Null, Null, Right, 0, Yellow, White, White,
  • Visible To and String, Default Visibility);
  • "click target info"
  • disabled Create HUD Text(Event Player, Custom String("{0} | {1} | {2}", Event Player.AclickTarget[1][0], Event Player.AclickTarget[1][1],
  • Event Player.AclickTarget[1][2]), Null, Null, Right, 0, Blue, White, White, Visible To and String, Default Visibility);
  • Call Subroutine(updateBlockSelectMenu);
  • "selection info"
  • disabled Create HUD Text(Count Of(Event Player.selectedTargetInfo) ? Event Player : 0, Custom String("{0}",
  • Event Player.selectedTargetInfo[0][1]), Null, Null, Right, 0, Yellow, White, White, Visible To and String, Default Visibility);
  • "click target info"
  • disabled Create HUD Text(Count Of(Event Player.AclickTarget) ? Event Player : 0, Custom String("{0}", Event Player.AclickTarget[0][1]),
  • Null, Null, Right, 0, Blue, White, White, Visible To and String, Default Visibility);
  • "selection info"
  • Create HUD Text(Count Of(Event Player.selectedTargetInfo) ? Event Player : 0, Null, Null, Custom String("{0}",
  • Event Player.selectedTargetInfo[0][1]), Right, 0, Yellow, Yellow, Yellow, Visible To and String, Default Visibility);
  • "click target info"
  • Create HUD Text(Count Of(Event Player.AclickTarget)
  • && Event Player.AclickTarget != Event Player.selectedTargetInfo ? Event Player : 0, Null, Null, Custom String("{0}",
  • Event Player.AclickTarget[0][1]), Right, 1, Blue, Blue, Blue, Visible To and String, Default Visibility);
  • }
  • }
  • rule("MATCH TIME SCHIST")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Match Time <= 3500;
  • }
  • actions
  • {
  • Set Match Time(3599);
  • }
  • }
  • rule("TOGGLE EDIT MODE")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Interact) == False;
  • }
  • actions
  • {
  • Event Player.editMode = !Event Player.editMode;
  • }
  • }
  • rule("F START CAM")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.editMode == True;
  • }
  • actions
  • {
  • Event Player.blockToUpdate = -1;
  • Start Camera(Event Player, Vector(0, 63, 0.875), Vector(0, 0, 0.875), 0);
  • Disable Hero HUD(Event Player);
  • Event Player.rememberedFacing = Facing Direction Of(Event Player);
  • Set Facing(Event Player, Vector(0, 0, 1), To World);
  • Set Aim Speed(Event Player, 30);
  • Call Subroutine(disableSchist);
  • }
  • }
  • rule("F STOP CAM")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.editMode == False;
  • }
  • actions
  • {
  • Stop Camera(Event Player);
  • Enable Hero HUD(Event Player);
  • Set Facing(Event Player, Event Player.rememberedFacing, To World);
  • Set Aim Speed(Event Player, 100);
  • Call Subroutine(enableSchist);
  • Enable Inspector Recording;
  • Event Player.AAAA = First Of(Filtered Array(Event Player.initChain, First Of(Current Array Element) < 0))[1];
  • Event Player.AAAA = Mapped Array(First Of(Filtered Array(Event Player.blocksNewest, Current Array Element[5] < 0))[3], Count Of(
  • Current Array Element));
  • Event Player.AAAA = Mapped Array(First Of(Filtered Array(Event Player.blocksNewest, Current Array Element[5] < 0))[3],
  • Current Array Element[4]);
  • Disable Inspector Recording;
  • Event Player.selectedTargetInfo = Null;
  • Call Subroutine(closeEntry);
  • }
  • }
  • disabled rule("ummm")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • "X LEFT"
  • Create Effect(All Players(All Teams), Sphere, Blue, Vector(1, 46, 0), 0.500, Visible To Position and Radius);
  • "Z FORWARD"
  • Create Effect(All Players(All Teams), Sphere, Green, Vector(0, 46, 1), 0.500, Visible To Position and Radius);
  • }
  • }
  • rule("DISABLESCHIST subroutine")
  • {
  • event
  • {
  • Subroutine;
  • disableSchist;
  • }
  • actions
  • {
  • Set Primary Fire Enabled(Event Player, False);
  • Set Secondary Fire Enabled(Event Player, False);
  • Set Reload Enabled(Event Player, False);
  • Set Melee Enabled(Event Player, False);
  • Set Ultimate Ability Enabled(Event Player, False);
  • Set Ability 1 Enabled(Event Player, False);
  • Set Ability 2 Enabled(Event Player, False);
  • Set Jump Enabled(Event Player, False);
  • Set Crouch Enabled(Event Player, False);
  • Set Status(Event Player, Null, Rooted, 9999);
  • Set Status(Event Player, Null, Phased Out, 9999);
  • Stop Facing(Event Player);
  • disabled Stop Camera(Event Player);
  • Set Gravity(Event Player, 0);
  • Start Forcing Player Position(Event Player, Position Of(Event Player), True);
  • Wait(0.033, Ignore Condition);
  • Stop Forcing Player Position(Event Player);
  • }
  • }
  • rule("ENABLESCHIST")
  • {
  • event
  • {
  • Subroutine;
  • enableSchist;
  • }
  • actions
  • {
  • Set Primary Fire Enabled(Event Player, True);
  • Set Secondary Fire Enabled(Event Player, True);
  • Set Reload Enabled(Event Player, True);
  • Set Melee Enabled(Event Player, True);
  • Set Ultimate Ability Enabled(Event Player, True);
  • Set Ability 1 Enabled(Event Player, True);
  • Set Ability 2 Enabled(Event Player, True);
  • Set Jump Enabled(Event Player, True);
  • Set Crouch Enabled(Event Player, True);
  • Clear Status(Event Player, Rooted);
  • Clear Status(Event Player, Phased Out);
  • Set Gravity(Event Player, 100);
  • Stop Forcing Player Position(Event Player);
  • }
  • }
  • rule("ACCESSVAL SUBROUTINE")
  • {
  • event
  • {
  • Subroutine;
  • accessVal;
  • }
  • actions
  • {
  • disabled If(Event Player.endChain[Event Player.endChain[Event Player.indexPos][2][Event Player.i3]][1]);
  • "switch structure courtesy of LazyLion : 3"
  • disabled If(True);
  • disabled Skip(2 * Event Player.endChain[Event Player.endChain[Event Player.indexPos][2][Event Player.i3]][2] + 1);
  • disabled Else;
  • disabled Event Player.tempVal = Position Of(Event Player);
  • disabled Else;
  • disabled Event Player.tempVal = Facing Direction Of(Event Player);
  • disabled Else;
  • disabled Event Player.tempVal = 0;
  • disabled End;
  • disabled Else;
  • Event Player.tempVal = Event Player.endChain[Event Player.endChain[Event Player.indexPos][2][Event Player.i3]][2];
  • disabled End;
  • "delete it"
  • disabled Event Player.endChain[Event Player.endChain[Event Player.indexPos][2][Event Player.i3]] = Null;
  • disabled If(!Global.menuInfo[0]);
  • Small Message(All Players(All Teams), Event Player.endChain[Event Player.indexPos][2][Event Player.i3]);
  • Wait(0.100, Ignore Condition);
  • disabled Small Message(All Players(All Teams), Event Player.endChain[Event Player.indexPos][2][Event Player.i3]);
  • disabled Wait(0.100, Ignore Condition);
  • }
  • }
  • rule("DOOPERATION SUBROUTINE")
  • {
  • event
  • {
  • Subroutine;
  • doOperation;
  • }
  • actions
  • {
  • "switch structure courtesy of LazyLion : 3"
  • If(True);
  • Skip(2 * Event Player.endChain[Event Player.indexPos][1] + 1);
  • Else;
  • "op0: add"
  • Event Player.tempVal = Event Player.tempVals[0] + Event Player.tempVals[1];
  • Else;
  • "op1: subtract"
  • Event Player.tempVal = Event Player.tempVals[0] - Event Player.tempVals[1];
  • Else;
  • "op2: multiply"
  • Event Player.tempVal = Event Player.tempVals[0] * Event Player.tempVals[1];
  • Else;
  • "op3: divide"
  • Event Player.tempVal = Event Player.tempVals[0] / Event Player.tempVals[1];
  • Else;
  • "op4: normalize"
  • Event Player.tempVal = Normalize(Event Player.tempVals[0]);
  • Else;
  • "op5: dot product"
  • Event Player.tempVal = Dot Product(Event Player.tempVals[0], Event Player.tempVals[1]);
  • Else;
  • "op6: cross product"
  • Event Player.tempVal = Cross Product(Event Player.tempVals[0], Event Player.tempVals[1]);
  • Else;
  • "op7: direction towards"
  • Event Player.tempVal = Direction Towards(Event Player.tempVals[0], Event Player.tempVals[1]);
  • Else;
  • "op8: vector towards"
  • Event Player.tempVal = Vector Towards(Event Player.tempVals[0], Event Player.tempVals[1]);
  • Else;
  • "op9: world vector of"
  • Event Player.tempVal = Event Player.tempVals[2] ? World Vector Of(Event Player.tempVals[0], Event Player.tempVals[1],
  • Rotation And Translation) : World Vector Of(Event Player.tempVals[0], Event Player.tempVals[1], Rotation);
  • Else;
  • "op10: local vector of"
  • Event Player.tempVal = Event Player.tempVals[2] ? Local Vector Of(Event Player.tempVals[0], Event Player.tempVals[1],
  • Rotation And Translation) : World Vector Of(Event Player.tempVals[0], Event Player.tempVals[1], Rotation);
  • Else;
  • "op11: x comp"
  • Event Player.tempVal = X Component Of(Event Player.tempVals[0]);
  • Else;
  • "op12: y comp"
  • Event Player.tempVal = X Component Of(Event Player.tempVals[0]);
  • Else;
  • "op13: z comp"
  • Event Player.tempVal = X Component Of(Event Player.tempVals[0]);
  • Else;
  • "op14: vector"
  • Event Player.tempVal = Vector(Event Player.tempVals[0], Event Player.tempVals[1], Event Player.tempVals[2]);
  • Else;
  • "op15: horizontal angle of"
  • Event Player.tempVal = Horizontal Angle From Direction(Event Player.tempVals[0]);
  • Else;
  • "op16: vertical angle of"
  • Event Player.tempVal = Vertical Angle From Direction(Event Player.tempVals[0]);
  • Else;
  • "op17: direction from angles"
  • Event Player.tempVal = Direction From Angles(Event Player.tempVals[0], Event Player.tempVals[1]);
  • Else;
  • "op18: position of"
  • Event Player.tempVal = Position Of(Event Player.tempVal[0]);
  • Else;
  • "op19: eye position of Of"
  • Event Player.tempVal = Eye Position(Event Player.tempVals[0]);
  • Else;
  • "op20: facing direction Of"
  • Event Player.tempVal = Facing Direction Of(Event Player.tempVals[0]);
  • Else;
  • "op21: velocity of"
  • Event Player.tempVal = Velocity Of(Event Player.tempVals[0]);
  • Else;
  • "op22: throttle of"
  • Event Player.tempVal = Throttle Of(Event Player.tempVals[0]);
  • Else;
  • "op23: angle between vectors"
  • Event Player.tempVal = Angle Between Vectors(Event Player.tempVals[0], Event Player.tempVals[1]);
  • Else;
  • "op24: angle difference"
  • Event Player.tempVal = Angle Difference(Event Player.tempVals[0], Event Player.tempVals[1]);
  • Else;
  • "op25: distance between"
  • Event Player.tempVal = Distance Between(Event Player.tempVals[0], Event Player.tempVals[1]);
  • Else;
  • "op26: sin"
  • Event Player.tempVal = Sine From Degrees(Event Player.tempVals[0]);
  • Else;
  • "op27: cos"
  • Event Player.tempVal = Cosine From Degrees(Event Player.tempVals[0]);
  • Else;
  • "op28: tan"
  • Event Player.tempVal = Tangent From Degrees(Event Player.tempVals[0]);
  • Else;
  • "op29: arcsine"
  • Event Player.tempVal = Arcsine In Degrees(Event Player.tempVals[0]);
  • Else;
  • "op30: arccos"
  • Event Player.tempVal = Arccosine In Degrees(Event Player.tempVals[0]);
  • Else;
  • "op31: arctan"
  • Event Player.tempVal = Arctangent In Degrees(Event Player.tempVals[0], 1);
  • Else;
  • "op32: absolute value"
  • Event Player.tempVal = Absolute Value(Event Player.tempVals[0]);
  • Else;
  • "op33: sign"
  • Event Player.tempVal = Event Player.tempVals[0] > 0 ? 0 : (Event Player.tempVals[0] == 0 ? 0 : -1);
  • Else;
  • "op34: modulo"
  • Event Player.tempVal = Event Player.tempVals[0] % Event Player.tempVals[1];
  • Else;
  • "op35: concatenate"
  • Event Player.tempVal = Custom String("{0}{1}{2}", Event Player.tempVals[0], Event Player.tempVals[1], Event Player.tempVals[2]);
  • End;
  • }
  • }
  • rule("CHAIN")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • True == True;
  • }
  • actions
  • {
  • disabled Event Player.endChain = Mapped Array(Event Player.initChain, Current Array Element[3] ? Current Array Element : Null);
  • Event Player.endChain = Event Player.initChain;
  • disabled For Player Variable(Event Player, i, 0, Count Of(Event Player.endChain), 1);
  • disabled Modify Player Variable At Index(Event Player, endChain, Event Player.i, Append To Array, Event Player.i);
  • disabled End;
  • "for every layer of priorities (order from highest priority to 1) || ex. in A(B() + C(D(x))), prioritiy values = A:1, B:2, C:2, D:3 and x as a value has 0 for priority< CHECK FOR OK vs -1"
  • For Player Variable(Event Player, i, Last Of(Sorted Array(Event Player.endChain, Current Array Element[0]))[0], 0, -1);
  • disabled Big Message(All Players(All Teams), Custom String("bruh?"));
  • "for all operations on current priority level"
  • disabled While(Count Of(Filtered Array(Event Player.endChain, Current Array Element[0] == Event Player.i)) > 0);
  • "for all operations on current priority level"
  • While(Count Of(Filtered Array(Event Player.endChain, Current Array Element[0] == Event Player.i)));
  • "set the index to the i2 th value in endchain with the priority value at i"
  • Event Player.indexPos = Last Of(First Of(Filtered Array(Event Player.endChain,
  • Current Array Element[0] == Event Player.i && Current Array Element)));
  • "set the index to the i2 th value in endchain with the priority value at i"
  • disabled Event Player.indexPos = Last Of(Filtered Array(Event Player.endChain, Current Array Element[0] == Event Player.i)[0]);
  • Event Player.tempVals = Empty Array;
  • "fill tempvals with all the requested inputs of the operation"
  • For Player Variable(Event Player, i3, 0, Count Of(Event Player.endChain[Event Player.indexPos][2]), 1);
  • "access val goes to the value requested in endchain and outputs the corresponding value at tempval"
  • Call Subroutine(accessVal);
  • Event Player.tempVals[Event Player.i3] = Event Player.tempVal;
  • End;
  • "String() is like a null value - if trying to access 0th or nullth block, returns null (specifically string() as null and 0 display)"
  • disabled Event Player.tempVals = Mapped Array(Event Player.endChain[Event Player.indexPos][2],
  • Current Array Element ? Event Player.endChain[Current Array Element][2] : String(""));
  • "take tempvals and do operation to ouput to endTempVal"
  • Call Subroutine(doOperation);
  • "the operation becomes a value after executing it"
  • Event Player.endChain[Event Player.indexPos] = Array(0, False, Event Player.tempVal, Event Player.indexPos);
  • End;
  • End;
  • "for every output block"
  • For Player Variable(Event Player, i, 0, Count Of(Filtered Array(Event Player.endChain, Current Array Element[0] < 0)), 1);
  • disabled Big Message(All Players(All Teams), Custom String("?hurb"));
  • Event Player.indexPos = Last Of(Filtered Array(Event Player.endChain, Current Array Element[0] < 0)[Event Player.i]);
  • "String() is like a null value - if trying to access 0th or nullth block, returns null (specifically string() as null and 0 display)"
  • Event Player.tempVals = Mapped Array(Event Player.endChain[Event Player.indexPos][1],
  • Current Array Element ? Event Player.endChain[Current Array Element][2] : String(""));
  • disabled Event Player.tempVals = Mapped Array(Event Player.endChain[Event Player.indexPos][1],
  • Event Player.endChain[Current Array Element][2]);
  • Event Player.endChain[Event Player.indexPos] = Array(Event Player.endChain[Event Player.indexPos][0], Event Player.tempVals);
  • End;
  • Event Player.finalValues = Filtered Array(Event Player.endChain, First Of(Current Array Element) < 0);
  • disabled Event Player.finalValues = Mapped Array(Sorted Array(Filtered Array(Event Player.endChain, Count Of(Current Array Element) > 1),
  • Current Array Element[0]), Append To Array(Current Array Element, Current Array Index));
  • disabled Event Player.finalValues = Mapped Array(Filtered Array(Event Player.endChain, First Of(Current Array Element) < 0),
  • Append To Array(Current Array Element[0], Current Array Element[1]));
  • disabled Event Player.finalValuesFirstTwo = Mapped Array(Event Player.finalValues, Array Slice(Event Player.finalValues, 0, 2));
  • Wait(0.016, Ignore Condition);
  • Loop If Condition Is True;
  • "for all operations on current priority level"
  • disabled For Player Variable(Event Player, i2, 0, Count Of(Filtered Array(Event Player.endChain,
  • Current Array Element[0] == Event Player.i)), 1);
  • }
  • }
  • disabled rule("")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Reload) == True;
  • }
  • actions
  • {
  • disabled Create Effect(All Players(All Teams), Sphere, White, Event Player, 1, Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String(" ye\n ye\n ye\n ye\n ye\n ye\n ye"), Vector(0, 46, 0), 1.500,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Beam Effect(All Players(All Teams), Grapple Beam, Vector(0, 46, 0), Vector(0, 46, 6), White,
  • Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String(" ye\n ye\n ye\n ye\n ye"), Vector(6, 46, 0), 1.500,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Beam Effect(All Players(All Teams), Grapple Beam, Vector(6, 46, 0), Vector(6, 46, 4.800), White,
  • Visible To Position and Radius);
  • Create In-World Text(All Players(All Teams), Custom String(" ye\n ye\n ye\n ye\n ye\n ye"), Vector(3, 46, 0), 1.500,
  • Clip Against Surfaces, Visible To Position and String, White, Default Visibility);
  • Create Beam Effect(All Players(All Teams), Grapple Beam, Vector(3, 46, 0), Vector(3, 46, 5.400), White,
  • Visible To Position and Radius);
  • }
  • }
  • disabled rule("TEMP PLAYER INIT")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • actions
  • {
  • Event Player.entryPos = True;
  • "number's info: {number, array of digits}"
  • Create In-World Text(Event Player.entryPos == True ? Event Player : False, Custom String("A|0 1 2 3 4 5 6 7 8 9|>X\n {0}",
  • Event Player.entryInfo[0]), Event Player.entryPos, 2, Clip Against Surfaces, Visible To Position and String, White,
  • Default Visibility);
  • disabled Create Beam Effect(All Players(All Teams), Grapple Beam, Event Player.entryPos + Vector(4.500, 0, 1.600),
  • Event Player.entryPos + Vector(-4.500, 0, 1.600), White, Visible To Position and Radius);
  • disabled Create Beam Effect(All Players(All Teams), Grapple Beam, Event Player.entryPos + Vector(3.125, 0, 2.500),
  • Event Player.entryPos + Vector(-3.125, 0, 2.500), White, Visible To Position and Radius);
  • Create Effect(Event Player.AclickTarget ? Event Player : Empty Array, Sphere, Blue, Event Player.AclickTarget[0], 0.500,
  • Visible To Position and Radius);
  • Event Player.clickTargets = Empty Array;
  • Create HUD Text(Event Player, Custom String("{0} | {1}", Event Player.AclickTarget, Event Player.AclickTarget[1]), Null, Null,
  • Left, 0, White, White, White, Visible To and String, Default Visibility);
  • }
  • }
  • rule("CLICK ON")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Primary Fire) == True;
  • Event Player.editMode == True;
  • Event Player.AclickTarget == True;
  • Event Player.selectedTargetInfo == False;
  • }
  • actions
  • {
  • "switch structure courtesy of LazyLion : 3"
  • If(True);
  • disabled Call Subroutine(openEntry);
  • Skip(2 * Event Player.AclickTarget[1][0] + 1);
  • Else;
  • Break;
  • Else;
  • Break;
  • Else;
  • disabled Break;
  • Call Subroutine(blockClickOn);
  • End;
  • disabled Create HUD Text(All Players(All Teams), Custom String("{0}", X Component Of(Event Player.cursorPos)), Null, Null, Right, 0, White,
  • White, White, Visible To, Default Visibility);
  • }
  • }
  • rule("CLICK OFF")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Primary Fire) == False;
  • Event Player.editMode == True;
  • disabled Event Player.AclickTarget == True;
  • }
  • actions
  • {
  • "switch structure courtesy of LazyLion : 3"
  • If(True);
  • disabled Break;
  • Skip(2 * Event Player.AclickTarget[1][0] + 1);
  • Else;
  • Call Subroutine(emptyClickOff);
  • Else;
  • Call Subroutine(numberClickOff);
  • Else;
  • Call Subroutine(blockClickOff);
  • Else;
  • Call Subroutine(blockMenuClickOff);
  • End;
  • disabled Create HUD Text(All Players(All Teams), Custom String("{0}", X Component Of(Event Player.cursorPos)), Null, Null, Right, 0, White,
  • White, White, Visible To, Default Visibility);
  • }
  • }
  • rule("NUMBERCLICKOFF subroutine")
  • {
  • event
  • {
  • Subroutine;
  • numberClickOff;
  • }
  • actions
  • {
  • Event Player.AAAA = Event Player.entryInfo[1];
  • "if was clicking on the same button"
  • disabled If(Event Player.selectedTargetInfo == Event Player.AclickTarget);
  • "accept button"
  • If(Event Player.AclickTarget[1][1] == Count Of(Event Player.numberTargetIndexes) - 2);
  • If(!Event Player.entryInfo[0]);
  • If(Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][4] == 3);
  • Event Player.entryInfo[0] = String("");
  • End;
  • End;
  • Event Player.tempVals4 = Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]];
  • Event Player.tempVals4[7] = Event Player.entryInfo[0];
  • Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]] = Event Player.tempVals4;
  • Event Player.blockToUpdate = Event Player.selectedTargetInfo[1][1];
  • Call Subroutine(hideBlock);
  • Event Player.blockToUpdate = Event Player.selectedTargetInfo[1][1];
  • Call Subroutine(showBlock);
  • Call Subroutine(closeEntry);
  • Call Subroutine(updateChain);
  • Event Player.selectedTargetInfo = Null;
  • "close button"
  • Else If(Event Player.AclickTarget[1][1] == Count Of(Event Player.numberTargetIndexes) - 1);
  • Call Subroutine(closeEntry);
  • Event Player.selectedTargetInfo = Null;
  • Else;
  • "number field"
  • If(Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][4] == 0);
  • "is entry for sign (-) and is the array empty"
  • If(First Of(Event Player.entryInfo[4])[Event Player.AclickTarget[1][1]] == -2);
  • If(Event Player.entryInfo[1] == Empty Array);
  • disabled Small Message(All Players(All Teams), Custom String("REEEE"));
  • Modify Player Variable At Index(Event Player, entryInfo, 1, Append To Array, First Of(Event Player.entryInfo[4])
  • [Event Player.AclickTarget[1][1]]);
  • End;
  • "can afford more digits"
  • Else If(Count Of(Remove From Array(Remove From Array(Event Player.entryInfo[1], -1), -2)) < 7);
  • "theres a dot"
  • If(Array Contains(Event Player.entryInfo[1], -1));
  • "entry is a number and there are precision digits left (3 total)"
  • If(First Of(Event Player.entryInfo[4])[Event Player.AclickTarget[1][1]] >= 0 && Count Of(Event Player.entryInfo[1])
  • - Index Of Array Value(Event Player.entryInfo[1], -1) <= 3);
  • disabled Small Message(All Players(All Teams), Custom String("REEEE"));
  • Modify Player Variable At Index(Event Player, entryInfo, 1, Append To Array, First Of(Event Player.entryInfo[4])
  • [Event Player.AclickTarget[1][1]]);
  • End;
  • "no dot"
  • Else;
  • disabled Small Message(All Players(All Teams), Custom String("REEEE"));
  • Modify Player Variable At Index(Event Player, entryInfo, 1, Append To Array, First Of(Event Player.entryInfo[4])
  • [Event Player.AclickTarget[1][1]]);
  • End;
  • End;
  • If(Event Player.entryInfo[1] == Array(0, 0));
  • Event Player.entryInfo[1] = Array(0);
  • End;
  • If(Event Player.entryInfo[1] == Array(-2, 0, 0));
  • Event Player.entryInfo[1] = Array(-2, 0);
  • End;
  • Event Player.entryInfo[0] = 0;
  • "CAPPING PROBLEMS, DO DIVISION BEFOREHAND OR SOMETHING"
  • For Player Variable(Event Player, anotherTempCounter, 0, Count Of(Remove From Array(Remove From Array(Event Player.entryInfo[1],
  • -1), -2)), 1);
  • Event Player.entryInfo[0] += Remove From Array(Remove From Array(Event Player.entryInfo[1], -1), -2)
  • [Event Player.anotherTempCounter];
  • disabled Event Player.entryInfo[0] += Remove From Array(Event Player.entryInfo[1], -1)[Event Player.anotherTempCounter] / 1000;
  • Event Player.entryInfo[0] *= 10;
  • End;
  • Event Player.entryInfo[0] /= 10 ^ (Array Contains(Event Player.entryInfo[1], -1) ? Count Of(Event Player.entryInfo[1])
  • - Index Of Array Value(Event Player.entryInfo[1], -1) : 1);
  • Event Player.entryInfo[2] = Custom String("{0}{1}", (First Of(Event Player.entryInfo[1]) == -2 ? Round To Integer(
  • -100 * Event Player.entryInfo[0], Up) : Round To Integer(100 * Event Player.entryInfo[0], Down)) / 100, Absolute Value(
  • Event Player.entryInfo[0]) * 1000 % 10 != 0 ? Event Player.entryInfo[0] * 1000 % 10 : String(""));
  • If(First Of(Event Player.entryInfo[1]) == -2);
  • Event Player.entryInfo[0] *= -1;
  • End;
  • disabled Event Player.entryInfo[0] /= 10 ^ (Array Contains(Event Player.entryInfo[1], -1) ? Count Of(Event Player.entryInfo[1])
  • - Index Of Array Value(Event Player.entryInfo[1], -4) : -2);
  • Else If(Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][4] == 3);
  • Modify Player Variable At Index(Event Player, entryInfo, 1, Append To Array, (Is Button Held(Event Player, Ability 1) ? Last Of(
  • Event Player.entryInfo[4]) : First Of(Event Player.entryInfo[4]))[Event Player.AclickTarget[1][1]]);
  • Event Player.entryInfo[0] = String("");
  • For Player Variable(Event Player, anotherTempCounter, 0, Count Of(Event Player.entryInfo[1]), 1);
  • Event Player.entryInfo[0] = Custom String("{0}{1}", Event Player.entryInfo[0],
  • Event Player.entryInfo[1][Event Player.anotherTempCounter]);
  • End;
  • Event Player.entryInfo[2] = Event Player.entryInfo[0];
  • "other fields"
  • Else;
  • Event Player.entryInfo[0] = (Is Button Held(Event Player, Ability 1) ? Last Of(Event Player.entryInfo[4]) : First Of(
  • Event Player.entryInfo[4]))[Event Player.AclickTarget[1][1]];
  • Event Player.entryInfo[2] = Event Player.entryInfo[0];
  • End;
  • End;
  • }
  • }
  • rule("EMPTYCLICKOFF subroutine")
  • {
  • event
  • {
  • Subroutine;
  • emptyClickOff;
  • }
  • actions
  • {
  • If(Event Player.selectedTargetInfo[1][0] == 2);
  • "click off from dragging a block"
  • If(Count Of(Event Player.selectedTargetInfo[1]) == 2);
  • If(Event Player.AclickTarget[1] == Array(0, 1));
  • Play Effect(Filtered Array(All Players(All Teams), Current Array Element.othersVisible || Current Array Element == Event Player),
  • Good Explosion, White, Event Player.AclickTarget[0], 1);
  • disabled Big Message(All Players(All Teams), Custom String("DELET THIS BFOR I DELET YOU"));
  • "remove all of block's connections"
  • If(Is True For Any(Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3], Count Of(Current Array Element) >= 6));
  • Event Player.toUpdate = Array(Event Player.selectedTargetInfo[1][1]);
  • Event Player.tempVals6 = Event Player.blocksNewest[First Of(Event Player.toUpdate)];
  • Event Player.tempVals6[8] = False;
  • Event Player.blocksNewest[First Of(Event Player.toUpdate)] = Event Player.tempVals6;
  • Call Subroutine(updateBlockOrderInfo);
  • Call Subroutine(updateChain);
  • For Player Variable(Event Player, tempCounter5, 0, Count Of(Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3]),
  • 1);
  • If(Count Of(Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.tempCounter5]) >= 6);
  • Destroy Effect(Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.tempCounter5][6]);
  • Event Player.tempVals6 = Event Player.blocksNewest[Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.tempCounter5][4]][3];
  • Event Player.tempVals6[Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.tempCounter5][5]] = Array Slice(
  • Event Player.tempVals6[Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.tempCounter5][5]], 0,
  • 4);
  • Event Player.blocksNewest[Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.tempCounter5][4]] = Mapped Array(
  • Event Player.blocksNewest[Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.tempCounter5][4]],
  • Current Array Index == 3 ? Event Player.tempVals6 : Current Array Element);
  • Event Player.tempVals6 = Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3];
  • Event Player.tempVals6[Event Player.tempCounter5] = Array Slice(Event Player.tempVals6[Event Player.tempCounter5], 0, 4);
  • Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]] = Mapped Array(
  • Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]],
  • Current Array Index == 3 ? Event Player.tempVals6 : Current Array Element);
  • End;
  • End;
  • End;
  • "delete block"
  • Event Player.blockToUpdate = Event Player.selectedTargetInfo[1][1];
  • Call Subroutine(hideBlock);
  • Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]] = Event Player.selectedTargetInfo[1][1];
  • Enable Inspector Recording;
  • Disable Inspector Recording;
  • Else;
  • Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]] = Append To Array(Event Player.cursorPos, Array Slice(
  • Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]], 1, 10));
  • "refresh block"
  • Event Player.blockToUpdate = Event Player.selectedTargetInfo[1][1];
  • Call Subroutine(hideBlock);
  • "refresh block"
  • Event Player.blockToUpdate = Event Player.selectedTargetInfo[1][1];
  • Play Effect(Filtered Array(All Players(All Teams), Current Array Element.othersVisible || Current Array Element == Event Player),
  • Good Explosion, White, Event Player.blocksNewest[Event Player.blockToUpdate][0], 1);
  • Call Subroutine(showBlock);
  • End;
  • Event Player.selectedTargetInfo = Null;
  • "click off from a node thats not a field"
  • Else If(Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][2][0] != 0);
  • If(Count Of(Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]]) > 4);
  • "play effects at nodes"
  • Play Effect(Filtered Array(All Players(All Teams), Current Array Element.othersVisible || Current Array Element == Event Player),
  • Good Explosion, White,
  • Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][0] + Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][0],
  • 1);
  • Play Effect(Filtered Array(All Players(All Teams), Current Array Element.othersVisible || Current Array Element == Event Player),
  • Good Explosion, White,
  • Event Player.blocksNewest[Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][4]][0] + Event Player.blocksNewest[Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][4]][3][Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][5]][0],
  • 1);
  • If(
  • Event Player.blocksNewest[Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][4]][3][Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][5]][2][0] < Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][2][0]);
  • Event Player.toUpdate = Array(
  • Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][4]);
  • Else;
  • Event Player.toUpdate = Array(Event Player.selectedTargetInfo[1][1]);
  • End;
  • Event Player.tempVals6 = Event Player.blocksNewest[First Of(Event Player.toUpdate)];
  • Event Player.tempVals6[8] = False;
  • Event Player.blocksNewest[First Of(Event Player.toUpdate)] = Event Player.tempVals6;
  • Call Subroutine(updateBlockOrderInfo);
  • Call Subroutine(updateChain);
  • Destroy Effect(Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][6]);
  • Event Player.tempVals6 = Event Player.blocksNewest[Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][4]][3];
  • Event Player.tempVals6[Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][5]] = Array Slice(
  • Event Player.tempVals6[Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][5]],
  • 0, 4);
  • Event Player.blocksNewest[Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][4]] = Mapped Array(
  • Event Player.blocksNewest[Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][4]],
  • Current Array Index == 3 ? Event Player.tempVals6 : Current Array Element);
  • Event Player.tempVals6 = Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3];
  • Event Player.tempVals6[Event Player.selectedTargetInfo[1][2]] = Array Slice(
  • Event Player.tempVals6[Event Player.selectedTargetInfo[1][2]], 0, 4);
  • Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]] = Mapped Array(
  • Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]],
  • Current Array Index == 3 ? Event Player.tempVals6 : Current Array Element);
  • End;
  • Event Player.selectedTargetInfo = Null;
  • End;
  • Else If(Event Player.AclickTarget[1] == Array(0, 2));
  • Event Player.workshopOn = !Event Player.workshopOn;
  • Play Effect(Filtered Array(All Players(All Teams), Current Array Element.othersVisible || Current Array Element == Event Player),
  • Good Explosion, White, Event Player.AclickTarget[0], 1);
  • Else If(Event Player.AclickTarget[1] == Array(0, 3));
  • Event Player.othersVisible = !Event Player.othersVisible;
  • Play Effect(Filtered Array(All Players(All Teams), Current Array Element.othersVisible || Current Array Element == Event Player),
  • Good Explosion, White, Event Player.AclickTarget[0], 1);
  • End;
  • disabled Event Player.tempVals5 = Event Player.blocksNewest[0][0];
  • }
  • }
  • rule("BLOCKCLICKED on subroutine")
  • {
  • event
  • {
  • Subroutine;
  • blockClickOn;
  • }
  • actions
  • {
  • disabled Small Message(All Players(All Teams),
  • Event Player.blocksNewest[Event Player.AclickTarget[1][1]][3][Event Player.AclickTarget[1][2]][2][0]);
  • "target is a node not a field"
  • If(Count Of(Event Player.AclickTarget[1])
  • > 2 && Event Player.blocksNewest[Event Player.AclickTarget[1][1]][3][Event Player.AclickTarget[1][2]][2][0] != 0);
  • disabled Small Message(All Players(All Teams), Custom String("A"));
  • Event Player.selectedTargetInfo = Event Player.AclickTarget;
  • Else If(Count Of(Event Player.AclickTarget[1]) == 2);
  • disabled Small Message(All Players(All Teams), Custom String("B"));
  • Event Player.selectedTargetInfo = Event Player.AclickTarget;
  • Else;
  • disabled Call Subroutine(emptyClickOn);
  • disabled Event Player.selectedTargetInfo = Event Player.AclickTarget;
  • End;
  • }
  • }
  • rule("BLOCKCLICKED off subroutine")
  • {
  • event
  • {
  • Subroutine;
  • blockClickOff;
  • }
  • actions
  • {
  • "target is a node not a field"
  • If(Event Player.selectedTargetInfo[1][0] == 2 && Count Of(Event Player.AclickTarget[1])
  • > 2 && Event Player.blocksNewest[Event Player.AclickTarget[1][1]][3][Event Player.AclickTarget[1][2]][2][0] != 0);
  • "sign of selected target was not the same as current target, do connection"
  • If((Event Player.blocksNewest[Event Player.AclickTarget[1][1]][3][Event Player.AclickTarget[1][2]][2][0] > 0) != (
  • Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][2][0] > 0)
  • && Event Player.selectedTargetInfo[1][1] != Event Player.AclickTarget[1][1] && Count Of(
  • Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]]) < 6 && Count Of(
  • Event Player.blocksNewest[Event Player.AclickTarget[1][1]][3][Event Player.AclickTarget[1][2]]) < 6 && !Is True For Any(
  • Event Player.blocksNewest[Event Player.AclickTarget[1][1]][3], Count Of(Current Array Element)
  • >= 6 && Current Array Element[4] == Event Player.selectedTargetInfo[1][1]));
  • Event Player.blocksCopy = Event Player.blocksNewest;
  • Event Player.tempVals7 = Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3];
  • Modify Player Variable At Index(Event Player, tempVals7, Event Player.selectedTargetInfo[1][2], Append To Array, Array(
  • Event Player.AclickTarget[1][1], Event Player.AclickTarget[1][2], Null));
  • Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]] = Mapped Array(
  • Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]],
  • Current Array Index == 3 ? Event Player.tempVals7 : Current Array Element);
  • Event Player.tempVals7 = Event Player.blocksNewest[Event Player.AclickTarget[1][1]][3];
  • Modify Player Variable At Index(Event Player, tempVals7, Event Player.AclickTarget[1][2], Append To Array, Array(
  • Event Player.selectedTargetInfo[1][1], Event Player.selectedTargetInfo[1][2], Null));
  • Event Player.blocksNewest[Event Player.AclickTarget[1][1]] = Mapped Array(
  • Event Player.blocksNewest[Event Player.AclickTarget[1][1]],
  • Current Array Index == 3 ? Event Player.tempVals7 : Current Array Element);
  • If(
  • Event Player.blocksNewest[Event Player.AclickTarget[1][1]][3][Event Player.AclickTarget[1][2]][2][0] > Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][2][0]);
  • Event Player.toUpdate = Array(Event Player.AclickTarget[1][1]);
  • Else;
  • Event Player.toUpdate = Array(Event Player.selectedTargetInfo[1][1]);
  • End;
  • Call Subroutine(updateBlockOrderInfo);
  • If(Event Player.badConnection);
  • Event Player.blocksNewest = Event Player.blocksCopy;
  • Else;
  • Call Subroutine(updateChain);
  • "refresh block"
  • Event Player.blockToUpdate = Event Player.selectedTargetInfo[1][1];
  • Call Subroutine(hideBlock);
  • "refresh block"
  • Event Player.blockToUpdate = Event Player.selectedTargetInfo[1][1];
  • Call Subroutine(showBlock);
  • End;
  • Event Player.selectedTargetInfo = Null;
  • Else;
  • Call Subroutine(emptyClickOff);
  • End;
  • "selected target was not a non node id 0 node but current target IS a node id 0"
  • disabled Else If(Event Player.blocksNewest[Event Player.AclickTarget[1][1]][3][Event Player.AclickTarget[1][2]][2][0] == 0);
  • "target to select is a field and not nothing already clicked on"
  • Else If(
  • Event Player.blocksNewest[Event Player.AclickTarget[1][1]][3][Event Player.AclickTarget[1][2]][2][0] == 0 && !Event Player.selectedTargetInfo);
  • "clicked on a field"
  • Event Player.selectedTargetInfo = Event Player.AclickTarget;
  • Call Subroutine(openEntry);
  • Else;
  • Call Subroutine(emptyClickOff);
  • End;
  • }
  • }
  • rule("OPEN NUMBER ENTRY subroutine")
  • {
  • event
  • {
  • Subroutine;
  • openEntry;
  • }
  • actions
  • {
  • Enable Inspector Recording;
  • If(!Event Player.entryPos);
  • Event Player.entryPos = Vector(0, 46, -11);
  • disabled Small Message(All Players(All Teams), Custom String("HEY FU CKO | {0} | {1} | {2}", Count Of(Global.menuInfo)));
  • disabled Event Player.entryPos = Vector(Max(-9.600, Min(9.600, X Component Of(Event Player.selectedTargetInfo[0]))), 46, Max(-8, Min(2.800,
  • Z Component Of(Event Player.selectedTargetInfo[0]))));
  • Event Player.entryInfo = Array(Null, Empty Array, String(""), String("Checkpoint"),
  • Global.menuInfo[2][Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][4]]);
  • Call Subroutine(updateEntryInfo3);
  • Event Player.numberTargetIndexes = Empty Array;
  • disabled Create HUD Text(All Players(All Teams), Last Created Entity, Null, Null, Right, 0, White, White, White, None, Default Visibility);
  • disabled Small Message(All Players(All Teams), Custom String("HEY FU CKO | {0} | {1} | {2}", Count Of(
  • Global.menuInfo[1][Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][4]]),
  • Count Of(Event Player.entryInfo[4]), Count Of(
  • Global.menuInfo[1][Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][4]])
  • - Count Of(Event Player.entryInfo[4])));
  • For Player Variable(Event Player, tempCounter, Count Of(
  • Global.menuInfo[1][Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][4]])
  • - Max(Count Of(First Of(Event Player.entryInfo[4])), Count Of(Last Of(Event Player.entryInfo[4]))), Count Of(
  • Global.menuInfo[1][Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][4]]),
  • 1);
  • Event Player.insertToTargetsIndex = Is True For Any(Event Player.clickTargets, Count Of(Current Array Element) < 2) ? Last Of(
  • Last Of(Filtered Array(Event Player.clickTargets, Count Of(Current Array Element) < 2))) : Count Of(Event Player.clickTargets);
  • Modify Player Variable(Event Player, numberTargetIndexes, Append To Array, Event Player.insertToTargetsIndex);
  • ">LOOK HERE FOR CLICK TARGETS STRUCTURE<"
  • Event Player.clickTargets[Event Player.insertToTargetsIndex] = Array(
  • Event Player.entryPos + Global.menuInfo[1][Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][4]][Event Player.tempCounter],
  • Array(1, Event Player.tempCounter - Count Of(
  • Global.menuInfo[1][Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][4]])
  • + Max(Count Of(First Of(Event Player.entryInfo[4])), Count Of(Last Of(Event Player.entryInfo[4])))),
  • Event Player.insertToTargetsIndex);
  • disabled Create Effect(All Players(All Teams), Sphere, Red, Event Player.clickTargets[Event Player.insertToTargetsIndex][0], 0.700,
  • Visible To);
  • End;
  • disabled Modify Player Variable At Index(Event Player, entryInfo, 1, Append To Array,
  • Event Player.entryInfo[4][Event Player.AclickTarget[1][1]]);
  • End;
  • Disable Inspector Recording;
  • }
  • }
  • rule("CLOSE NUMBER ENTRY subroutine")
  • {
  • event
  • {
  • Subroutine;
  • closeEntry;
  • }
  • actions
  • {
  • disabled Big Message(All Players(All Teams), Custom String("REEEE"));
  • If(Event Player.entryPos);
  • Event Player.entryPos = Null;
  • For Player Variable(Event Player, tempCounter, 0, Count Of(Event Player.numberTargetIndexes), 1);
  • Event Player.clickTargets[Event Player.numberTargetIndexes[Event Player.tempCounter]] = Array(
  • Event Player.numberTargetIndexes[Event Player.tempCounter]);
  • End;
  • End;
  • disabled Event Player.selectedTargetInfo = Null;
  • }
  • }
  • rule("HOME CURSOR TO TARGET")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.AclickTarget != First Of(Sorted Array(Filtered Array(Event Player.clickTargets, Distance Between(
  • Current Array Element[0], Event Player.cursorPos) <= 0.700 && Count Of(Current Array Element) >= 2), Distance Between(
  • Current Array Element[0], Event Player.cursorPos)));
  • }
  • actions
  • {
  • "click targets have [0] = pos, [1] = {box, value in box}, [2] = same value as index"
  • Event Player.AclickTarget = First Of(Sorted Array(Filtered Array(Event Player.clickTargets, Distance Between(
  • Current Array Element[0], Event Player.cursorPos) <= 0.700 && Count Of(Current Array Element) >= 2), Distance Between(
  • Current Array Element[0], Event Player.cursorPos)));
  • Wait(0.050, Ignore Condition);
  • Loop If Condition Is True;
  • disabled Wait(0.100, Ignore Condition);
  • }
  • }
  • disabled rule("HOME CURSOR UPDATE - NEWEST PRIORITY")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.AclickTarget != Last Of(Filtered Array(Event Player.clickTargets, Distance Between(Current Array Element[0],
  • Event Player.cursorPos) <= 0.700 && Count Of(Current Array Element) >= 2));
  • }
  • actions
  • {
  • "click targets have [0] = pos, [1] = {box, value in box}, [2] = same value as index"
  • Event Player.AclickTarget = Last Of(Filtered Array(Event Player.clickTargets, Distance Between(Current Array Element[0],
  • Event Player.cursorPos) <= 0.700 && Count Of(Current Array Element) >= 2));
  • Wait(0.016, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • disabled rule("HOME CURSOR ON NOTHING")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Filtered Array(Event Player.clickTargets, Distance Between(Current Array Element[0], Event Player.cursorPos) <= 0.700 && Count Of(
  • Current Array Element) >= 2) == False;
  • }
  • actions
  • {
  • Event Player.AclickTarget = False;
  • }
  • }
  • disabled rule("CAM BLOCK EXISTS AND NOT IN EDIT MODE")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is True For Any(Event Player.initChain, Current Array Element[0] == -1) == True;
  • Event Player.editMode == False;
  • }
  • actions
  • {
  • disabled Small Message(All Players(All Teams), Custom String("ye cam"));
  • Enable Inspector Recording;
  • "end"
  • Start Camera(First Of(Filtered Array(Event Player.finalValues, Current Array Element[0] == -1))[1][0], First Of(Filtered Array(
  • Event Player.finalValues, Current Array Element[0] == -1))[1][1], First Of(Filtered Array(Event Player.finalValues,
  • Current Array Element[0] == -1))[1][2], 120);
  • disabled Event Player.AAAA = First Of(Filtered Array(Event Player.finalValues, Current Array Element[0] == -1));
  • disabled Event Player.AAAA = First Of(Filtered Array(Event Player.finalValues, Current Array Element[0] == -1))[1];
  • Disable Inspector Recording;
  • }
  • }
  • disabled rule("RELOAD PRESSED")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Reload) == True;
  • }
  • actions
  • {
  • For Player Variable(Event Player, tempCounter3, 0, Count Of(Event Player.blocksNewest), 1);
  • Event Player.blockToUpdate = Event Player.tempCounter3;
  • Call Subroutine(showBlock);
  • End;
  • disabled Event Player.selectedTargetInfo = Array(Vector(0, 46, 0), Array(2, 1, 1));
  • Call Subroutine(openEntry);
  • Wait(2, Ignore Condition);
  • }
  • }
  • disabled rule("")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is Button Held(Event Player, Reload) == False;
  • }
  • actions
  • {
  • disabled Call Subroutine(openEntry);
  • For Player Variable(Event Player, tempCounter3, 0, Count Of(Event Player.blocksNewest), 1);
  • Event Player.blockToUpdate = Event Player.tempCounter3;
  • disabled Destroy In-World Text(Event Player.blocksNewest[Event Player.blockToUpdate][0][1]);
  • disabled For Player Variable(Event Player, nodeToUpdate, 0, Count Of(Event Player.blocksNewest[1][1]), 1);
  • disabled Destroy Effect(Event Player.blocksNewest[Event Player.blockToUpdate][1][Event Player.nodeToUpdate][1]);
  • disabled End;
  • Call Subroutine(hideBlock);
  • End;
  • disabled Wait(0.016, Ignore Condition);
  • disabled For Player Variable(Event Player, blockToUpdate, 0, Count Of(Event Player.blocksNewest), 1);
  • disabled Call Subroutine(showBlock);
  • disabled End;
  • disabled Wait(1, Ignore Condition);
  • }
  • }
  • disabled rule("MAKEBLOCK subroutine")
  • {
  • event
  • {
  • Subroutine;
  • showBlock;
  • }
  • actions
  • {
  • Create In-World Text(All Players(All Teams), Event Player.blocksNewest[Event Player.blockToUpdate][1],
  • Event Player.blocksNewest[Event Player.blockToUpdate][0], 1, Clip Against Surfaces, Visible To and String, White,
  • Default Visibility);
  • "set blocksold[L][2] = last text id"
  • Event Player.tempVals2 = Event Player.blocksNewest[Event Player.blockToUpdate];
  • Event Player.tempVals2[2] = Last Text ID;
  • Event Player.blocksNewest[Event Player.blockToUpdate] = Event Player.tempVals2;
  • For Player Variable(Event Player, nodeToUpdate, 0, Count Of(Event Player.blocksNewest[Event Player.blockToUpdate][3]), 1);
  • "output node is green"
  • If(Event Player.blocksNewest[Event Player.blockToUpdate][3][Event Player.nodeToUpdate][2][0] < 0);
  • Create Effect(All Players(All Teams), Sphere, Green,
  • Event Player.blocksNewest[Event Player.blockToUpdate][0] + Event Player.blocksNewest[Event Player.blockToUpdate][3][Event Player.nodeToUpdate][0],
  • 1, Visible To);
  • "blocksold[L][3][M][1] = last created entity"
  • Event Player.tempVals2 = Event Player.blocksNewest[Event Player.blockToUpdate][3];
  • Event Player.tempVals2[Event Player.nodeToUpdate] = Mapped Array(Event Player.tempVals2[Event Player.nodeToUpdate],
  • Current Array Index == 1 ? Last Created Entity : Current Array Element);
  • Event Player.blocksNewest[Event Player.blockToUpdate] = Mapped Array(Event Player.blocksNewest[Event Player.blockToUpdate],
  • Current Array Index == 3 ? Event Player.tempVals2 : Current Array Element);
  • "input is red"
  • Else;
  • Create Effect(All Players(All Teams), Sphere, Red,
  • Event Player.blocksNewest[Event Player.blockToUpdate][0] + Event Player.blocksNewest[Event Player.blockToUpdate][3][Event Player.nodeToUpdate][0],
  • 1, Visible To);
  • "blocksold[L][3][M][1] = last created entity"
  • Event Player.tempVals2 = Event Player.blocksNewest[Event Player.blockToUpdate][3];
  • Event Player.tempVals2[Event Player.nodeToUpdate] = Mapped Array(Event Player.tempVals2[Event Player.nodeToUpdate],
  • Current Array Index == 1 ? Last Created Entity : Current Array Element);
  • Event Player.blocksNewest[Event Player.blockToUpdate] = Mapped Array(Event Player.blocksNewest[Event Player.blockToUpdate],
  • Current Array Index == 3 ? Event Player.tempVals2 : Current Array Element);
  • End;
  • End;
  • }
  • }
  • rule("SHOWBLOCK subroutine")
  • {
  • event
  • {
  • Subroutine;
  • showBlock;
  • }
  • actions
  • {
  • disabled Wait(1, Ignore Condition);
  • disabled Create Beam Effect(All Players(All Teams), Good Beam,
  • Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][0] + Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][0],
  • Event Player.blocksNewest[Event Player.AclickTarget[1][1]][0] + Event Player.blocksNewest[Event Player.AclickTarget[1][1]][3][Event Player.AclickTarget[1][2]][0],
  • White, None);
  • "if there is no intention to create a block"
  • If(Event Player.blockToUpdate != -1);
  • Create In-World Text(Filtered Array(All Players(All Teams),
  • Current Array Element.othersVisible || Current Array Element == Event Player),
  • Event Player.blocksNewest[Event Player.blockToUpdate][1], Event Player.blocksNewest[Event Player.blockToUpdate][0], 1.500,
  • Clip Against Surfaces, Visible To, White, Default Visibility);
  • "set blocksold[L][2] = last text id"
  • Event Player.tempVals2 = Event Player.blocksNewest[Event Player.blockToUpdate];
  • Event Player.tempVals2[2] = Last Text ID;
  • Event Player.blocksNewest[Event Player.blockToUpdate] = Event Player.tempVals2;
  • Event Player.anotherInsertToTargetsIndex = Is True For Any(Event Player.clickTargets, Count Of(Current Array Element) < 2)
  • ? Last Of(Last Of(Filtered Array(Event Player.clickTargets, Count Of(Current Array Element) < 2))) : Count Of(
  • Event Player.clickTargets);
  • "set blocksold[L][4] = insertindexblahblahblah"
  • Event Player.tempVals2 = Event Player.blocksNewest[Event Player.blockToUpdate];
  • Event Player.tempVals2[4] = Event Player.anotherInsertToTargetsIndex;
  • Event Player.blocksNewest[Event Player.blockToUpdate] = Event Player.tempVals2;
  • ">LOOK HERE FOR CLICK TARGETS STRUCTURE< | node pos, {click type, node's block's index, node's index}"
  • Event Player.clickTargets[Event Player.anotherInsertToTargetsIndex] = Array(Array(
  • Event Player.blocksNewest[Event Player.blockToUpdate][0] + Vector(0, 0, 0),
  • Event Player.blocksNewest[Event Player.blockToUpdate][6][1]), Array(2, Event Player.blockToUpdate),
  • Event Player.anotherInsertToTargetsIndex);
  • For Player Variable(Event Player, nodeToUpdate, 0, Count Of(Event Player.blocksNewest[Event Player.blockToUpdate][3]), 1);
  • Event Player.anotherInsertToTargetsIndex = Is True For Any(Event Player.clickTargets, Count Of(Current Array Element) < 2)
  • ? Last Of(Last Of(Filtered Array(Event Player.clickTargets, Count Of(Current Array Element) < 2))) : Count Of(
  • Event Player.clickTargets);
  • "blocksold[L][3][M][3] = anotherInsertToTargetsIndex"
  • Event Player.tempVals2 = Event Player.blocksNewest[Event Player.blockToUpdate][3];
  • Event Player.tempVals2[Event Player.nodeToUpdate] = Mapped Array(Event Player.tempVals2[Event Player.nodeToUpdate],
  • Current Array Index == 3 ? Event Player.anotherInsertToTargetsIndex : Current Array Element);
  • Event Player.blocksNewest[Event Player.blockToUpdate] = Mapped Array(Event Player.blocksNewest[Event Player.blockToUpdate],
  • Current Array Index == 3 ? Event Player.tempVals2 : Current Array Element);
  • disabled Wait(0.016, Ignore Condition);
  • ">LOOK HERE FOR CLICK TARGETS STRUCTURE< | node pos, {click type, node's block's index, node's index}"
  • Event Player.clickTargets[Event Player.anotherInsertToTargetsIndex] = Array(Array(
  • Event Player.blocksNewest[Event Player.blockToUpdate][0] + Event Player.blocksNewest[Event Player.blockToUpdate][3][Event Player.nodeToUpdate][0],
  • Event Player.blocksNewest[Event Player.blockToUpdate][3][Event Player.nodeToUpdate][2][1]), Array(2,
  • Event Player.blockToUpdate, Event Player.nodeToUpdate), Event Player.anotherInsertToTargetsIndex);
  • "output node is green"
  • If(Event Player.blocksNewest[Event Player.blockToUpdate][3][Event Player.nodeToUpdate][2][0] < 0);
  • disabled Small Message(All Players(All Teams), Custom String("yuh make"));
  • Create Effect(Filtered Array(All Players(All Teams), Current Array Element.othersVisible || Current Array Element == Event Player),
  • Sphere, Green,
  • Event Player.blocksNewest[Event Player.blockToUpdate][0] + Event Player.blocksNewest[Event Player.blockToUpdate][3][Event Player.nodeToUpdate][0],
  • 0.200, Visible To);
  • "blocksold[L][3][M][1] = last created entity"
  • Event Player.tempVals2 = Event Player.blocksNewest[Event Player.blockToUpdate][3];
  • Event Player.tempVals2[Event Player.nodeToUpdate] = Mapped Array(Event Player.tempVals2[Event Player.nodeToUpdate],
  • Current Array Index == 1 ? Last Created Entity : Current Array Element);
  • Event Player.blocksNewest[Event Player.blockToUpdate] = Mapped Array(Event Player.blocksNewest[Event Player.blockToUpdate],
  • Current Array Index == 3 ? Event Player.tempVals2 : Current Array Element);
  • "VALUE FIELD NODE/entry field"
  • Else If(Event Player.blocksNewest[Event Player.blockToUpdate][3][Event Player.nodeToUpdate][2][0] == 0);
  • Create In-World Text(Filtered Array(All Players(All Teams),
  • Current Array Element.othersVisible || Current Array Element == Event Player),
  • Event Player.blocksNewest[Event Player.blockToUpdate][7],
  • Event Player.blocksNewest[Event Player.blockToUpdate][0] + Event Player.blocksNewest[Event Player.blockToUpdate][3][Event Player.nodeToUpdate][0],
  • 1.500, Clip Against Surfaces, Visible To, White, Default Visibility);
  • "blocksold[L][3][M][1] = last text ID"
  • Event Player.tempVals2 = Event Player.blocksNewest[Event Player.blockToUpdate][3];
  • Event Player.tempVals2[Event Player.nodeToUpdate] = Mapped Array(Event Player.tempVals2[Event Player.nodeToUpdate],
  • Current Array Index == 1 ? Last Text ID : Current Array Element);
  • Event Player.blocksNewest[Event Player.blockToUpdate] = Mapped Array(Event Player.blocksNewest[Event Player.blockToUpdate],
  • Current Array Index == 3 ? Event Player.tempVals2 : Current Array Element);
  • "input is red"
  • Else;
  • Create Effect(Filtered Array(All Players(All Teams), Current Array Element.othersVisible || Current Array Element == Event Player),
  • Sphere, Red,
  • Event Player.blocksNewest[Event Player.blockToUpdate][0] + Event Player.blocksNewest[Event Player.blockToUpdate][3][Event Player.nodeToUpdate][0],
  • 0.200, Visible To);
  • "blocksold[L][3][M][1] = last created entity"
  • Event Player.tempVals2 = Event Player.blocksNewest[Event Player.blockToUpdate][3];
  • Event Player.tempVals2[Event Player.nodeToUpdate] = Mapped Array(Event Player.tempVals2[Event Player.nodeToUpdate],
  • Current Array Index == 1 ? Last Created Entity : Current Array Element);
  • Event Player.blocksNewest[Event Player.blockToUpdate] = Mapped Array(Event Player.blocksNewest[Event Player.blockToUpdate],
  • Current Array Index == 3 ? Event Player.tempVals2 : Current Array Element);
  • disabled Create HUD Text(All Players(All Teams), Custom String("{0} | {1}",
  • Event Player.blocksNewest[Event Player.blockToUpdate][3][Event Player.nodeToUpdate][1], Last Created Entity), Null, Null, Left,
  • 0, White, White, White, Visible To, Default Visibility);
  • End;
  • If(Count Of(Event Player.blocksNewest[Event Player.blockToUpdate][3][Event Player.nodeToUpdate]) >= 6);
  • Event Player.tempVals2 = Array(Array(Event Player.blockToUpdate, Event Player.nodeToUpdate), Array Slice(
  • Event Player.blocksNewest[Event Player.blockToUpdate][3][Event Player.nodeToUpdate], 4, 2));
  • "[1]'s id > [0]'s id"
  • If(
  • Event Player.blocksNewest[Event Player.tempVals2[1][0]][3][Event Player.tempVals2[1][1]][2][0] < Event Player.blocksNewest[Event Player.blockToUpdate][3][Event Player.nodeToUpdate][2][0]);
  • Event Player.tempVals2 = Array(Event Player.tempVals2[1], Event Player.tempVals2[0]);
  • End;
  • Create Beam Effect(Filtered Array(All Players(All Teams),
  • Current Array Element.othersVisible || Current Array Element == Event Player), Bad Beam,
  • Event Player.blocksNewest[Event Player.tempVals2[0][0]][0] + Event Player.blocksNewest[Event Player.tempVals2[0][0]][3][Event Player.tempVals2[0][1]][0],
  • Event Player.blocksNewest[Event Player.tempVals2[1][0]][0] + Event Player.blocksNewest[Event Player.tempVals2[1][0]][3][Event Player.tempVals2[1][1]][0],
  • White, Visible To);
  • Event Player.tempVals3 = Event Player.blocksNewest[Event Player.tempVals2[0][0]][3];
  • Event Player.tempVals3[Event Player.tempVals2[0][1]] = Mapped Array(Event Player.tempVals3[Event Player.tempVals2[0][1]],
  • Current Array Index == 6 ? Last Created Entity : Current Array Element);
  • Event Player.blocksNewest[Event Player.tempVals2[0][0]] = Mapped Array(Event Player.blocksNewest[Event Player.tempVals2[0][0]],
  • Current Array Index == 3 ? Event Player.tempVals3 : Current Array Element);
  • Event Player.tempVals3 = Event Player.blocksNewest[Event Player.tempVals2[1][0]][3];
  • Event Player.tempVals3[Event Player.tempVals2[1][1]] = Mapped Array(Event Player.tempVals3[Event Player.tempVals2[1][1]],
  • Current Array Index == 6 ? Last Created Entity : Current Array Element);
  • Event Player.AAAA = Event Player.tempVals3[Event Player.tempVals2[1][1]];
  • Event Player.blocksNewest[Event Player.tempVals2[1][0]] = Mapped Array(Event Player.blocksNewest[Event Player.tempVals2[1][0]],
  • Current Array Index == 3 ? Event Player.tempVals3 : Current Array Element);
  • End;
  • End;
  • End;
  • Event Player.blockToUpdate = -1;
  • }
  • }
  • rule("HIDEBLOCK subroutine")
  • {
  • event
  • {
  • Subroutine;
  • hideBlock;
  • }
  • actions
  • {
  • disabled Wait(1, Ignore Condition);
  • "if there is no intention to destroy a block"
  • If(Event Player.blockToUpdate != -1);
  • Destroy In-World Text(Event Player.blocksNewest[Event Player.blockToUpdate][2]);
  • Event Player.clickTargets[Event Player.blocksNewest[Event Player.blockToUpdate][4]] = Last Of(
  • Event Player.clickTargets[Event Player.blocksNewest[Event Player.blockToUpdate][4]]);
  • For Player Variable(Event Player, nodeToUpdate, 0, Count Of(Event Player.blocksNewest[Event Player.blockToUpdate][3]), 1);
  • If(Count Of(Event Player.blocksNewest[Event Player.blockToUpdate][3][Event Player.nodeToUpdate]) >= 7);
  • disabled Small Message(All Players(All Teams), Custom String("yuh delet"));
  • Destroy Effect(Event Player.blocksNewest[Event Player.blockToUpdate][3][Event Player.nodeToUpdate][6]);
  • End;
  • Event Player.clickTargets[Event Player.blocksNewest[Event Player.blockToUpdate][3][Event Player.nodeToUpdate][3]] = Last Of(
  • Event Player.clickTargets[Event Player.blocksNewest[Event Player.blockToUpdate][3][Event Player.nodeToUpdate][3]]);
  • If(Event Player.blocksNewest[Event Player.blockToUpdate][3][Event Player.nodeToUpdate][1]);
  • If(Event Player.blocksNewest[Event Player.blockToUpdate][3][Event Player.nodeToUpdate][2][0]);
  • Destroy Effect(Event Player.blocksNewest[Event Player.blockToUpdate][3][Event Player.nodeToUpdate][1]);
  • Else;
  • Destroy In-World Text(Event Player.blocksNewest[Event Player.blockToUpdate][3][Event Player.nodeToUpdate][1]);
  • End;
  • End;
  • End;
  • End;
  • Event Player.blockToUpdate = -1;
  • }
  • }
  • rule("UPDATE BLOCK ORDER INFO")
  • {
  • event
  • {
  • Subroutine;
  • updateBlockOrderInfo;
  • }
  • actions
  • {
  • disabled Enable Inspector Recording;
  • Modify Player Variable(Event Player, encounteredBlocks, Append To Array, Event Player.toUpdate);
  • Event Player.nextToUpdate = Empty Array;
  • Event Player.badConnection = False;
  • "every block being asked to update connections"
  • For Player Variable(Event Player, tempCounter4_1, 0, Count Of(Event Player.toUpdate), 1);
  • "every node of every block being asked to update connections"
  • For Player Variable(Event Player, tempCounter4_2, 0, Count Of(
  • Event Player.blocksNewest[Event Player.toUpdate[Event Player.tempCounter4_1]][3]), 1);
  • "if its connected and an input node"
  • If(Count Of(Event Player.blocksNewest[Event Player.toUpdate[Event Player.tempCounter4_1]][3][Event Player.tempCounter4_2])
  • >= 6 && Event Player.blocksNewest[Event Player.toUpdate[Event Player.tempCounter4_1]][3][Event Player.tempCounter4_2][2][0] > 0 && !Event Player.badConnection);
  • If(Array Contains(Event Player.encounteredBlocks,
  • Event Player.blocksNewest[Event Player.toUpdate[Event Player.tempCounter4_1]][3][Event Player.tempCounter4_2][4]));
  • Event Player.badConnection = True;
  • Else;
  • "will update blocks referenced by input connections next"
  • Modify Player Variable(Event Player, nextToUpdate, Append To Array,
  • Event Player.blocksNewest[Event Player.toUpdate[Event Player.tempCounter4_1]][3][Event Player.tempCounter4_2][4]);
  • "the block this node references"
  • Event Player.tempVals9 = Event Player.blocksNewest[Last Of(Event Player.nextToUpdate)];
  • "increased priority for higher levels"
  • If(Event Player.blocksNewest[Last Of(Event Player.nextToUpdate)][5] > 0);
  • If(Event Player.blocksNewest[Event Player.toUpdate[Event Player.tempCounter4_1]][5] > 0);
  • Event Player.tempVals9[5] = Event Player.blocksNewest[Event Player.toUpdate[Event Player.tempCounter4_1]][5] + 1;
  • Else;
  • Event Player.tempVals9[5] = 1;
  • End;
  • End;
  • Event Player.tempVals9[8] = Event Player.blocksNewest[Event Player.toUpdate[Event Player.tempCounter4_1]][8];
  • Event Player.blocksNewest[Last Of(Event Player.nextToUpdate)] = Event Player.tempVals9;
  • End;
  • End;
  • End;
  • End;
  • If(Count Of(Event Player.nextToUpdate) && !Event Player.badConnection);
  • Event Player.toUpdate = Event Player.nextToUpdate;
  • Call Subroutine(updateBlockOrderInfo);
  • End;
  • Event Player.encounteredBlocks = Empty Array;
  • disabled Disable Inspector Recording;
  • }
  • }
  • rule("UPDATE CHAIN subroutine")
  • {
  • event
  • {
  • Subroutine;
  • updateChain;
  • }
  • actions
  • {
  • Enable Inspector Recording;
  • Event Player.initChain = Empty Array;
  • "for all the blocks"
  • For Player Variable(Event Player, BR, 0, Count Of(Event Player.blocksNewest), 1);
  • disabled Create HUD Text(All Players(All Teams), Custom String("{1} : {2} - {0}", Count Of(Event Player.blocksNewest[Event Player.BR][3]),
  • Event Player.BR, Event Player.blocksNewest[Event Player.BR][5]), Null, Null, Left, 0, Blue, White, White, Visible To,
  • Default Visibility);
  • disabled Create HUD Text(All Players(All Teams), Custom String("{0}", Event Player.BR), Null, Null, Left, 0, White, White, White, None,
  • Default Visibility);
  • "if the block is connected"
  • If(Event Player.blocksNewest[Event Player.BR][8]);
  • "if the block isnt a value block (checking ID value)"
  • If(Event Player.blocksNewest[Event Player.BR][5] != 0);
  • "filter out nothings from node input indexes > not agnostic to input/output id"
  • Event Player.tempVals8 = Mapped Array(Sorted Array(Filtered Array(Event Player.blocksNewest[Event Player.BR][3],
  • Current Array Element[2][0] > 0), Current Array Element[2][0]), Count Of(Current Array Element)
  • >= 6 ? Current Array Element[4] : -1);
  • disabled Small Message(All Players(All Teams), Custom String("{0}", Count Of(Filtered Array(Event Player.blocksNewest[Event Player.BR][3],
  • Current Array Element[2][0] > 0))));
  • If(Event Player.blocksNewest[Event Player.BR][5] > 0);
  • Event Player.initChain[Event Player.BR] = Array(Event Player.blocksNewest[Event Player.BR][5],
  • Event Player.blocksNewest[Event Player.BR][6][0], Event Player.tempVals8, Event Player.BR);
  • Else;
  • Event Player.initChain[Event Player.BR] = Array(Event Player.blocksNewest[Event Player.BR][5], Event Player.tempVals8,
  • Event Player.BR);
  • disabled Create HUD Text(All Players(All Teams), Custom String("{1} : {2} - {0}", Count Of(Event Player.initChain[Event Player.BR][1]),
  • Event Player.BR, Event Player.blocksNewest[Event Player.BR][5]), Null, Null, Left, 0, Red, White, White, Visible To,
  • Default Visibility);
  • disabled Wait(0.016, Ignore Condition);
  • End;
  • Else;
  • Event Player.initChain[Event Player.BR] = Array(Event Player.blocksNewest[Event Player.BR][5],
  • Event Player.blocksNewest[Event Player.BR][6][0], Event Player.blocksNewest[Event Player.BR][7], Event Player.BR);
  • End;
  • End;
  • End;
  • Event Player.AAAA = Mapped Array(Event Player.initChain, Current Array Element[0]);
  • Disable Inspector Recording;
  • }
  • }
  • rule("UPDATEENTRYINFO3 subroutine")
  • {
  • event
  • {
  • Subroutine;
  • updateEntryInfo3;
  • }
  • actions
  • {
  • If(
  • Global.menuInfo[0][Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][4]][0]);
  • Event Player.cancer = Custom String(" {0}", All Players(All Teams)[0]);
  • For Player Variable(Event Player, UH, 1, Count Of(All Players(All Teams)), 1);
  • Event Player.cancer = Custom String("{0}\n {1}", Event Player.cancer, All Players(All Teams)[Event Player.UH]);
  • End;
  • Event Player.cancer = Custom String("{0}\n >\n X\n ", Event Player.cancer);
  • Event Player.entryInfo[3] = Event Player.cancer;
  • Else;
  • disabled Small Message(All Players(All Teams), Custom String("E"));
  • Event Player.entryInfo[3] = Global.menuInfo[0][Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][4]][1];
  • End;
  • }
  • }
  • rule("ALL PLAYERS UPDATES - PLAYERS UPDATE MENU")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Global.doAnUpdate == True;
  • }
  • actions
  • {
  • If(
  • Event Player.entryPos && Event Player.blocksNewest[Event Player.selectedTargetInfo[1][1]][3][Event Player.selectedTargetInfo[1][2]][4] == 2);
  • Call Subroutine(closeEntry);
  • Call Subroutine(openEntry);
  • End;
  • }
  • }
  • rule("ALL PLAYERS UPDATES - GLOBAL'S UPDATE")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • conditions
  • {
  • Global.menuInfo[2][2] != Array(Append To Array(All Players(All Teams), Array(Null, Null)));
  • }
  • actions
  • {
  • Global.tempVals = Global.menuInfo[2];
  • Global.tempVals[2] = Array(Append To Array(All Players(All Teams), Array(Null, Null)));
  • Global.menuInfo[2] = Global.tempVals;
  • Global.tempVals = Global.menuInfo[1];
  • Global.tempVals[2] = Mapped Array(Global.upMenuInfo, Current Array Element + Vector(0, 0, 0.060 * (12 - Count Of(All Players(
  • All Teams)))));
  • Global.menuInfo[1] = Global.tempVals;
  • Global.doAnUpdate = True;
  • Wait(0.016, Ignore Condition);
  • Global.doAnUpdate = False;
  • disabled Big Message(All Players(All Teams), Custom String("EEEE"));
  • Loop If Condition Is True;
  • }
  • }
  • rule("SERVER LOADS hud : /")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Create HUD Text(All Players(All Teams), Custom String("ld {0} |avg {1} |pk {2}", Server Load, Server Load Average,
  • Server Load Peak), Null, Null, Left, 0, White, White, White, Visible To and String, Default Visibility);
  • }
  • }
  • disabled rule("")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.blocksNewest != Event Player.blocksOld;
  • }
  • actions
  • {
  • Event Player.blocksOld = Event Player.blocksNewest;
  • Call Subroutine(updateChain);
  • disabled Call Subroutine(updateBlockOrderInfo);
  • Wait(0.100, Ignore Condition);
  • Loop If Condition Is True;
  • }
  • }
  • rule("CREATEBLOCK subroutine")
  • {
  • event
  • {
  • Subroutine;
  • blockMenuClickOff;
  • }
  • actions
  • {
  • disabled Enable Inspector Recording;
  • If(!Event Player.selectedTargetInfo);
  • disabled Call Subroutine(showBlock);
  • If(Event Player.AclickTarget[1][2] == 0);
  • disabled Small Message(All Players(All Teams), Custom String("right"));
  • Event Player.page = (Event Player.page + 1) % Count Of(Global.blockInfos);
  • Call Subroutine(updateBlockSelectMenu);
  • Else If(Event Player.AclickTarget[1][2] == 1);
  • disabled Small Message(All Players(All Teams), Custom String("left"));
  • Event Player.page = (Event Player.page - 1 + Count Of(Global.blockInfos)) % Count Of(Global.blockInfos);
  • Call Subroutine(updateBlockSelectMenu);
  • Else;
  • disabled Small Message(All Players(All Teams), Custom String("what do you think you're duwang "));
  • disabled Event Player.blockToUpdate = Count Of(Event Player.blocksNewest);
  • Event Player.blockToUpdate = Is True For Any(Event Player.blocksNewest, Count Of(Current Array Element) < 2) ? Last Of(Last Of(
  • Filtered Array(Event Player.blocksNewest, Count Of(Current Array Element) < 2))) : Count Of(Event Player.blocksNewest);
  • Event Player.blocksNewest[Event Player.blockToUpdate] = Global.blockInfos[Event Player.AclickTarget[1][1]][Event Player.AclickTarget[1][2] - 2];
  • Call Subroutine(showBlock);
  • End;
  • End;
  • disabled Disable Inspector Recording;
  • }
  • }
  • rule("UPDATEBLOCKSELECTMENU subroutine")
  • {
  • event
  • {
  • Subroutine;
  • updateBlockSelectMenu;
  • }
  • actions
  • {
  • If(Count Of(Event Player.blocksMenuTargets));
  • disabled Small Message(All Players(All Teams), Custom String("ye mum"));
  • For Player Variable(Event Player, tempCounter2, 0, Count Of(Event Player.blocksMenuTargets), 1);
  • Event Player.clickTargets[Event Player.blocksMenuTargets[Event Player.tempCounter2]] = Last Of(
  • Event Player.clickTargets[Event Player.blocksMenuTargets[Event Player.tempCounter2]]);
  • End;
  • End;
  • Event Player.blocksMenuTargets = Empty Array;
  • For Player Variable(Event Player, tempCounter2, 0, Count Of(Global.blockInfos[Event Player.page]) + 2, 1);
  • disabled Small Message(All Players(All Teams), Custom String("ye dad"));
  • Event Player.insertToTargetsIndex = Is True For Any(Event Player.clickTargets, Count Of(Current Array Element) < 2) ? Last Of(
  • Last Of(Filtered Array(Event Player.clickTargets, Count Of(Current Array Element) < 2))) : Count Of(Event Player.clickTargets);
  • Modify Player Variable(Event Player, blocksMenuTargets, Append To Array, Event Player.insertToTargetsIndex);
  • ">LOOK HERE FOR CLICK TARGETS STRUCTURE<"
  • Event Player.clickTargets[Event Player.insertToTargetsIndex] = Array(Array(Global.blockSelectPossList[Count Of(
  • Global.blockSelectPossList) - 1 - Event Player.tempCounter2], Event Player.tempCounter2 > 1 ? Custom String(
  • "Click To Create Block") : Custom String("Click To change page")), Array(3, Event Player.page, Event Player.tempCounter2),
  • Event Player.insertToTargetsIndex);
  • End;
  • }
  • }
  • rule("UPDATEALLCOMMANDS")
  • {
  • event
  • {
  • Ongoing - Global;
  • }
  • actions
  • {
  • Global.updatingCommands = True;
  • Global.tempAllCommands = Empty Array;
  • For Global Variable(counter, 0, Count Of(All Players(All Teams)), 1);
  • disabled Big Message(All Players(All Teams), Custom String("yes"));
  • Modify Global Variable(tempAllCommands, Append To Array, All Players(All Teams)[Global.counter].finalValues);
  • End;
  • Global.allCommands = Global.tempAllCommands;
  • Global.updatingCommands = False;
  • Wait(0.016, Ignore Condition);
  • Loop;
  • }
  • }
  • rule("NO CAM BLOCK EXISTS CALLING TO PLAYER")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Event Player.editMode == False;
  • Global.updatingCommands == False;
  • (!Is True For Any(Global.allCommands, Current Array Element[0] == -1 && First Of(Current Array Element[1]) == Event Player)
  • || !Event Player.workshopOn) == True;
  • }
  • actions
  • {
  • Stop Camera(Event Player);
  • }
  • }
  • rule("CAM BLOCK EXISTS CALLING TO PLAYER")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is True For Any(Global.allCommands, Current Array Element[0] == -1 && First Of(Current Array Element[1]) == Event Player) == True;
  • Event Player.editMode == False;
  • Global.updatingCommands == False;
  • }
  • actions
  • {
  • "if the player has a block"
  • If(Is True For Any(Event Player.finalValuesFirstTwo, Current Array Element == Array(-1, Event Player)));
  • Start Camera(Event Player, First Of(Filtered Array(Event Player.finalValues, Current Array Element[0] == -1 && First Of(
  • Current Array Element[1]) == Event Player))[1][1], First Of(Filtered Array(Event Player.finalValues,
  • Current Array Element[0] == -1))[1][2], 120);
  • Else If(Event Player.workshopOn);
  • Start Camera(Event Player, First Of(Filtered Array(Global.allCommands, Current Array Element[0] == -1 && First Of(
  • Current Array Element[1]) == Event Player))[1][1], First Of(Filtered Array(Global.allCommands,
  • Current Array Element[0] == -1 && First Of(Current Array Element[1]) == Event Player))[1][2], 120);
  • End;
  • disabled Big Message(All Players(All Teams), Custom String("AAAA"));
  • }
  • }
  • rule("NO START FACING BLOCK EXISTS CALLING TO PLAYER")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • (!Is True For Any(Global.allCommands, Current Array Element[0] == -2 && First Of(Current Array Element[1]) == Event Player)
  • || !Event Player.workshopOn) == True;
  • Event Player.editMode == False;
  • Global.updatingCommands == False;
  • }
  • actions
  • {
  • Stop Facing(Event Player);
  • }
  • }
  • rule("START FACING BLOCK EXISTS CALLING TO PLAYER")
  • {
  • event
  • {
  • Ongoing - Each Player;
  • All;
  • All;
  • }
  • conditions
  • {
  • Is True For Any(Global.allCommands, Current Array Element[0] == -2 && First Of(Current Array Element[1]) == Event Player) == True;
  • Event Player.editMode == False;
  • Global.updatingCommands == False;
  • }
  • actions
  • {
  • "if the player has a block"
  • If(Is True For Any(Event Player.finalValuesFirstTwo, Current Array Element == Array(-2, Event Player)));
  • "end"
  • Start Facing(Event Player, First Of(Filtered Array(Event Player.finalValues, Current Array Element[0] == -2 && First Of(
  • Current Array Element[1]) == Event Player))[1][1], First Of(Filtered Array(Event Player.finalValues,
  • Current Array Element[0] == -2 && First Of(Current Array Element[1]) == Event Player))[1][2], To World,
  • Direction and Turn Rate);
  • Else If(Event Player.workshopOn);
  • Start Facing(Event Player, First Of(Filtered Array(Global.allCommands, Current Array Element[0] == -2 && First Of(
  • Current Array Element[1]) == Event Player))[1][1], First Of(Filtered Array(Global.allCommands,
  • Current Array Element[0] == -2 && First Of(Current Array Element[1]) == Event Player))[1][2], To World,
  • Direction and Turn Rate);
  • End;
  • disabled Big Message(All Players(All Teams), Custom String("AAAA"));
  • }
  • }
Join the Workshop.codes Discord