Sleeves Model Properties - Floogen/FashionSense GitHub Wiki

Property Required Description Default
StartingPosition true Used to determine where the starting point is (top-left most pixel for the SleevesModel) N/A
BodyPosition true Where the player's body would be in relation to the sleeves in sleeves.png N/A
SleevesSize true Specifies how width and long the sleeves sprite is in pixels N/A
Flipped false Flips the sleeves sprite if true, which is useful for LeftSleeves / RightSleeves false
DisableNativeOffset false If true, disables the framework's native offsets.
This is useful when using modified vanilla tilesheets, as they are already properly offset for each frame.
false
Scale false Determines how the sleeve's size is scaled when drawn 4.0
DrawOrderOverride false Overrides the default draw order for this appearance.
See this page for more details.
false
HidePlayerBase false If true, hides the player's base sprite false
HideWhileSwimming false If true and the player is swimming, hides the sleeves sprite true
HideWhileWearingBathingSuit false If true and the player is wearing a bathing suit, hides the sleeves sprite true
HideWaterLine false If true and the player is swimming, hides water line sprite that appears while swimming false
UseShirtColors false Use the FS shirt's SleeveColors property to recolor the sleeves, based on the first three colors within sleeves's ColorMasks.
Overrides the player's sleeve color choice.
false
RequireAnimationToFinish false Prevents the movement animation from finishing early, even if the player has stopped moving false
DisableGrayscale false Disables the player's sleeves color choice and uses the sprite's native color instead false
DisableSkinGrayscale false If true, prevents the sleeve's SkinToneMasks from being affected by the player's color choice false
IsPrismatic false Causes the sprite to change colors, similar to the prismatic slime false
PrismaticAnimationSpeedMultiplier false Determines how quickly the prismatic colors change 1.0
ColorMasks false List of RGB colors to use as a color mask.
Any color given will be replaced by the player's color choice or by a prismatic color (if IsPrismatic is set to true).
See this page for more details.
null
ColorMaskLayers false List of color mask layers, which can be used to create multiple colorable sections.
Any color given will be replaced by the player's color choice, unless IgnoreUserColorChoice is set to true).
See this page for more details.
null
SkinToneMasks false Three RGB colors to use as a color mask for the player's skin.
The colors given will be replaced by the player's skin tone which consists of three shades (darkest, medium and lightest).
See this page for more details.
null
UniformAnimation false Animation to always play, regardless of player movement.
This is ignored if IdleAnimation or MovementAnimation are given.
See this page for more details.
null
IdleAnimation false Animation to play while the player is standing still.
See this page for more details.
null
MovementAnimation false Animation to play while the player is moving.
See this page for more details.
null
Tags false A list of keywords that can be searched against in the appearance search menu []

 

All Four Sleeves Models Example

{
  "Name": "Striped Sleeves",
  "FrontSleeves": {
    "ColorMasks": [
      [ 212, 208, 197 ]
    ],
    "UseShirtColors": true,
    "DisableSkinGrayscale": true,
    "SkinToneMasks": {
      "LightTone": [ 249, 174, 137 ],
      "MediumTone": [ 224, 107, 101 ],
      "DarkTone": [ 107, 0, 58 ]
    },
    "StartingPosition": {
      "X": 0,
      "Y": 0
    },
    "BodyPosition": {
      "X": 0,
      "Y": 0
    },
    "SleevesSize": {
      "Width": 16,
      "Length": 32
    },
    "IdleAnimation": [
      {
        "Frame": 0,
        "Duration": 125
      }
    ],
    "MovementAnimation": [
      {
        "Frame": 0,
        "EndWhenFarmerFrameUpdates": true,
        "Conditions": [
          {
            "Name": "IsRunning",
            "Value": true
          }
        ]
      },
      {
        "Frame": 0,
        "EndWhenFarmerFrameUpdates": true,
        "Conditions": [
          {
            "Name": "IsRunning",
            "Value": true
          }
        ]
      },
      {
        "Frame": 1,
        "EndWhenFarmerFrameUpdates": true,
        "Conditions": [
          {
            "Name": "IsRunning",
            "Value": true
          }
        ]
      },
      {
        "Frame": 1,
        "EndWhenFarmerFrameUpdates": true,
        "Conditions": [
          {
            "Name": "IsRunning",
            "Value": true
          }
        ]
      },
      {
        "Frame": 0,
        "EndWhenFarmerFrameUpdates": true,
        "Conditions": [
          {
            "Name": "IsRunning",
            "Value": true
          }
        ]
      },
      {
        "Frame": 0,
        "EndWhenFarmerFrameUpdates": true,
        "Conditions": [
          {
            "Name": "IsRunning",
            "Value": true
          }
        ]
      },
      {
        "Frame": 2,
        "EndWhenFarmerFrameUpdates": true,
        "Conditions": [
          {
            "Name": "IsRunning",
            "Value": true
          }
        ]
      },
      {
        "Frame": 2,
        "EndWhenFarmerFrameUpdates": true,
        "Conditions": [
          {
            "Name": "IsRunning",
            "Value": true
          }
        ]
      }
    ]
  },
  "BackSleeves": {
    "ColorMasks": [
      [ 212, 208, 197 ]
    ],
    "UseShirtColors": true,
    "DisableSkinGrayscale": true,
    "SkinToneMasks": {
      "LightTone": [ 249, 174, 137 ],
      "MediumTone": [ 224, 107, 101 ],
      "DarkTone": [ 107, 0, 58 ]
    },
    "StartingPosition": {
      "X": 0,
      "Y": 64
    },
    "BodyPosition": {
      "X": 0,
      "Y": 0
    },
    "SleevesSize": {
      "Width": 16,
      "Length": 32
    },
    "IdleAnimation": [
      {
        "Frame": 0,
        "Duration": 125
      }
    ],
    "MovementAnimation": [
      {
        "Frame": 0,
        "EndWhenFarmerFrameUpdates": true,
        "Conditions": [
          {
            "Name": "IsRunning",
            "Value": true
          }
        ]
      },
      {
        "Frame": 0,
        "EndWhenFarmerFrameUpdates": true,
        "Conditions": [
          {
            "Name": "IsRunning",
            "Value": true
          }
        ]
      },
      {
        "Frame": 1,
        "EndWhenFarmerFrameUpdates": true,
        "Conditions": [
          {
            "Name": "IsRunning",
            "Value": true
          }
        ]
      },
      {
        "Frame": 1,
        "EndWhenFarmerFrameUpdates": true,
        "Conditions": [
          {
            "Name": "IsRunning",
            "Value": true
          }
        ]
      },
      {
        "Frame": 0,
        "EndWhenFarmerFrameUpdates": true,
        "Conditions": [
          {
            "Name": "IsRunning",
            "Value": true
          }
        ]
      },
      {
        "Frame": 0,
        "EndWhenFarmerFrameUpdates": true,
        "Conditions": [
          {
            "Name": "IsRunning",
            "Value": true
          }
        ]
      },
      {
        "Frame": 2,
        "EndWhenFarmerFrameUpdates": true,
        "Conditions": [
          {
            "Name": "IsRunning",
            "Value": true
          }
        ]
      },
      {
        "Frame": 2,
        "EndWhenFarmerFrameUpdates": true,
        "Conditions": [
          {
            "Name": "IsRunning",
            "Value": true
          }
        ]
      }
    ]
  },
  "RightSleeves": {
    "ColorMasks": [
      [ 212, 208, 197 ]
    ],
    "UseShirtColors": true,
    "DisableSkinGrayscale": true,
    "SkinToneMasks": {
      "LightTone": [ 249, 174, 137 ],
      "MediumTone": [ 224, 107, 101 ],
      "DarkTone": [ 107, 0, 58 ]
    },
    "StartingPosition": {
      "X": 0,
      "Y": 32
    },
    "BodyPosition": {
      "X": 0,
      "Y": 2
    },
    "SleevesSize": {
      "Width": 16,
      "Length": 32
    },
    "IdleAnimation": [
      {
        "Frame": 0,
        "Duration": 125
      }
    ],
    "MovementAnimation": [
      {
        "Frame": 0,
        "EndWhenFarmerFrameUpdates": true,
        "Conditions": [
          {
            "Name": "IsRunning",
            "Value": true
          }
        ]
      },
      {
        "Frame": 0,
        "EndWhenFarmerFrameUpdates": true,
        "Conditions": [
          {
            "Name": "IsRunning",
            "Value": true
          }
        ]
      },
      {
        "Frame": 1,
        "EndWhenFarmerFrameUpdates": true,
        "Conditions": [
          {
            "Name": "IsRunning",
            "Value": true
          }
        ]
      },
      {
        "Frame": 1,
        "EndWhenFarmerFrameUpdates": true,
        "Conditions": [
          {
            "Name": "IsRunning",
            "Value": true
          }
        ]
      },
      {
        "Frame": 0,
        "EndWhenFarmerFrameUpdates": true,
        "Conditions": [
          {
            "Name": "IsRunning",
            "Value": true
          }
        ]
      },
      {
        "Frame": 0,
        "EndWhenFarmerFrameUpdates": true,
        "Conditions": [
          {
            "Name": "IsRunning",
            "Value": true
          }
        ]
      },
      {
        "Frame": 2,
        "EndWhenFarmerFrameUpdates": true,
        "Conditions": [
          {
            "Name": "IsRunning",
            "Value": true
          }
        ]
      },
      {
        "Frame": 2,
        "EndWhenFarmerFrameUpdates": true,
        "Conditions": [
          {
            "Name": "IsRunning",
            "Value": true
          }
        ]
      }
    ]
  },
  "LeftSleeves": {
    "Flipped": true,
    "ColorMasks": [
      [ 212, 208, 197 ]
    ],
    "UseShirtColors": true,
    "DisableSkinGrayscale": true,
    "SkinToneMasks": {
      "LightTone": [ 249, 174, 137 ],
      "MediumTone": [ 224, 107, 101 ],
      "DarkTone": [ 107, 0, 58 ]
    },
    "StartingPosition": {
      "X": 0,
      "Y": 32
    },
    "BodyPosition": {
      "X": 0,
      "Y": 2
    },
    "SleevesSize": {
      "Width": 16,
      "Length": 32
    },
    "IdleAnimation": [
      {
        "Frame": 0,
        "Duration": 125
      }
    ],
    "MovementAnimation": [
      {
        "Frame": 0,
        "EndWhenFarmerFrameUpdates": true,
        "Conditions": [
          {
            "Name": "IsRunning",
            "Value": true
          }
        ]
      },
      {
        "Frame": 0,
        "EndWhenFarmerFrameUpdates": true,
        "Conditions": [
          {
            "Name": "IsRunning",
            "Value": true
          }
        ]
      },
      {
        "Frame": 1,
        "EndWhenFarmerFrameUpdates": true,
        "Conditions": [
          {
            "Name": "IsRunning",
            "Value": true
          }
        ]
      },
      {
        "Frame": 1,
        "EndWhenFarmerFrameUpdates": true,
        "Conditions": [
          {
            "Name": "IsRunning",
            "Value": true
          }
        ]
      },
      {
        "Frame": 0,
        "EndWhenFarmerFrameUpdates": true,
        "Conditions": [
          {
            "Name": "IsRunning",
            "Value": true
          }
        ]
      },
      {
        "Frame": 0,
        "EndWhenFarmerFrameUpdates": true,
        "Conditions": [
          {
            "Name": "IsRunning",
            "Value": true
          }
        ]
      },
      {
        "Frame": 2,
        "EndWhenFarmerFrameUpdates": true,
        "Conditions": [
          {
            "Name": "IsRunning",
            "Value": true
          }
        ]
      },
      {
        "Frame": 2,
        "EndWhenFarmerFrameUpdates": true,
        "Conditions": [
          {
            "Name": "IsRunning",
            "Value": true
          }
        ]
      }
    ]
  }
}
⚠️ **GitHub.com Fallback** ⚠️