Stabyourself.net Wiki
Register
Advertisement
Characters

Custom characters are a feature that originated in Mari0: SE and has been brought over to Alesan's Entities. They allow the player even more customization than hats alone, giving them the ability to change even the base sprite for the player and the character's abilities.

Composition (SE)[]

You need spritesheets for the character without a portal gun (nogunanimations1 and nogunbiganimations1), and the normal animations will become the sprite for the character with the portal gun. Please note that the game will crash if you try to give a character without customizable colors hat #1, because it is colored to match animations1. Leaving animations1 blank and using animations0 or animations2 as your character sheet will essentially fix the crash. You also need a valid config.txt.

Composition (AE)[]

They can either be made with 1 uncolorable spritesheet (animations.png) or multiple spritesheets for colors (animations1.png, animations2.png, etc). You need a different set of spritesets for each powerup but if you don't want to make that many you can use "health" and "defaultsize" and stick to just one. Other than that the only required file is a valid config.json....

Config file[]

SE uses a config.txt, Use this GitHub project for example. AE uses a config.json, Use this custom character example.

They need to be filled with appropriate propeerties, these can affect a players animations, offsets or physics. Here is a list of all known character properties (ones labelled (AE) are AE exclusive and ones labelled (SE) are SE/CE exclusive).

Raccoon

Raccoon, the character showcasing the new Property.

General -[]

  • (SE) "raccoonMario": boolean - Gives the character the abilities of Raccoon Mario (Tail swinging,

flying, and slowing falls) when it is not small. Interestingly, the character can still throw fireballs if they have a fire flower.

  • (SE) "dbljmppls": boolean - Lets the character jump twice.
  • (SE) "pegasus": boolean - Lets the character jump indefinitely, overriding Double Jump. It was removed in beta 9.
  • (AE) "smallDucking": boolean - Lets the character duck when small.
  • (AE) "breaksBlocksSmall": boolean - Lets the character break blocks when small.
  • (AE) "skid": boolean - Plays the skid sound when skidding.
  • (AE) "health": integer - How much health the character has.
  • (AE) "defaultSize": integer - The default size of the character.
  • (AE) "fireEnemy": table{ properties } - See below for better explanation.
  • (AE) "spawnEnemy": boolean - If the character spawns an enemy on load.
  • (AE) "noJumpSound": boolean - If the character has a jump sound, useful for adding custom sounds.
  • (AE) "doubleJump": boolean - Lets the character jump twice.
  • (AE) "groundPound": boolean - Allows the character to ground pound. (but it is kind of broken)

Animations -[]

  • Colors -
    • "colorables": array[string] - The names of each of the colourable parts.
    • "defaultColors": array[array[array[R,G,B]]] - The default colors for each player and part.
    • "starColors": array[array[array[R,G,B]]] - The star colors for each part, can have multiple colors.
    • "flowerColor": array[array[R,G,B]] - The colors for each part when player has a fire flower.
    • "hammerSuitColor": array[array[R,G,B]] - The colors for each part when player has a hammer suit.
    • "frogSuitColor": array[array[R,G,B]] - The colors for each part when player has a frog suit.
    • "leafColor": array[array[R,G,B]] - The colors for each part when player has a leaf.
    • "iceFlowerColor": array[array[R,G,B]] - The colors for each part when player has a ice flower.
    • "tanookiSuitColor": array[array[R,G,B]] - The colors for each part when player has a tanooki suit.
    • "statueColor": array[array[R,G,B]] - The colors for each part when player is a statue.
    • "superBallColor": array[array[R,G,B]] - The colors for each part when player has a superball flower..
    • "blueShellColor": array[array[R,G,B]] - The colors for each part when player has a blue shell.
    • "boomerangColor": array[array[R,G,B]] - The colors for each part when player has a boomerang suit.
  • Frames -
    • "idleFrames": integer - The amount of idle frames.
    • "idleAnimationSpeed": decimal - How fast the idle animation is.
    • "runFrames": integer - The amount of walk/run frames.
    • "runAnimationSpeed": decimal - How fast the run animation is.
    • "jumpFrames": integer - The amount of jump frames.
    • "jumpAnimationSpeed": decimal - How fast the jump animation plays.
    • "jumpAnimationLoop": boolean - Makes the jump animation repeat.
    • "fallFrames": integer - The amount of fall frames (and if they have any).
    • "fallAnimationSpeed": decimal - How fast the fall animation plays.
    • "fallAnimationLoop": boolean - Makes the fall animation repeat.
    • "fenceFrames": integer - The amount of fence frames (fences).
    • "fenceAnimationSpeed": decimal - How fast the fence animation plays.
    • "climbFrames": integer - The amount of climb frames (vines).
    • "vineFrameDelay": decimal - How fast the vine animation plays.
    • "swimFrames": integer - The amount of swim frames (Only supports 2 or 4 frames (don't blame me)).
    • "swimPushFrames": integer - The amount of swim push frames.
    • "smallDuckingFrames": integer - The amount of small ducking frames (Not big).
    • "blueShellFrames": integer - The amount of blue shell frames (When speening).
    • "shoeFrames": integer - If the character has a shoe frame (You can only have 1 shoe frame!!!)
    • "customFrames": integer - The amount of custom frames (Used with custom moves).
  • Portal gun -
    • "noportalgun": boolean - If the character has no portal gun
    • "nopointing": boolean - Removes the portal gun frames, so only the top row is needed
    • "portalgunoverlay": boolean - Overlays a portal gun over the character (has to be used with "nopointing")

Offsets and Quads -[]

  • Small -
    • "smallQuadWidth": integer - Width of a single quad (Frame).
    • "smallQuadHeight": integer - Height of a single quad (Frame)
    • "smallImgWidth": integer - The width of the image.
    • "smallImgHeight": integer - The height of the image.
    • "smallQuadCenterX": integer - The X quad center (center of the quad on the X-axis).
    • "smallQuadCenterY": integer - The Y quad center (center of the quad on the Y-axis).
    • "smallOffsetX": integer - The X offset of the image.
    • "smallOffsetY": integer - The Y offset of the image.
  • Big -
    • "bigQuadWidth": integer - Width of a single quad (Frame)
    • "bigQuadHeight": integer - Height of a single quad (Frame).
    • "bigImgWidth": integer - The width of the image.
    • "bigImgHeight": integer - The height of the image.
    • "bigQuadCenterX": integer - The X quad center (center of the quad on the X-axis).
    • "bigQuadCenterY": integer - The Y quad center (center of the quad on the Y-axis).
    • "bigOffsetX": integer - The X offset of the image.
    • "bigOffsetY": integer - The Y offset of the image.
  • Shrink and Grow -
    • "shrinkQuadCenterX": integer - The X quad center (center of the quad on the X-axis).
    • "shrinkQuadCenterY": integer - The Y quad center (center of the quad on the Y-axis).
    • "shrinkOffsetY": integer - The Y offset of the image.
    • "growQuadWidth": integer - Width of a single quad (Frame).
    • "growQuadHeight": integer - Height of a single quad (Frame).
    • "growQuadCenterY": integer - The Y quad center (center of the quad on the Y-axis).
  • (AE) Hammer -
    • "hammerQuadWidth": integer - Width of a single quad (Frame).
    • "hammerQuadHeight": integer - Height of a single quad (Frame).
    • "hammerImgWidth": integer - The width of the image.
    • "hammerImgHeight": integer - The height of the image.
    • "hammerQuadCenterX": integer - The X quad center (center of the quad on the X-axis).
    • "hammerQuadCenterY": integer - The Y quad center (center of the quad on the Y-axis).
    • "hammerOffsetX": integer - The X offset of the image.
    • "hammerOffsetY": integer - The Y offset of the image.
  • (AE) Frog -
    • "frogQuadWidth": integer - Width of a single quad (Frame).
    • "frogQuadHeight": integer - Height of a single quad (Frame).
    • "frogImgWidth": integer - The width of the image.
    • "frogImgHeight": integer - The height of the image.
    • "frogQuadCenterX": integer - The X quad center (center of the quad on the X-axis).
    • "frogQuadCenterY": integer - The Y quad center (center of the quad on the Y-axis).
    • "frogOffsetX": integer - The X offset of the image.
    • "frogOffsetY": integer - The Y offset of the image.
  • (AE) Raccoon -
    • "raccoonQuadWidth": integer - Width of a single quad (Frame).
    • "raccoonQuadHeight": integer - Height of a single quad (Frame).
    • "raccoonImgWidth": integer - The width of the image.
    • "raccoonImgHeight": integer - The height of the image.
    • "raccoonQuadCenterX": integer - The X quad center (center of the quad on the X-axis).
    • "raccoonQuadCenterY": integer - The Y quad center (center of the quad on the Y-axis).
    • "raccoonOffsetX": integer - The X offset of the image.
    • "raccoonOffsetY": integer - The Y offset of the image.
  • (AE) Huge -
    • "hugeQuadCenterX": integer - The X quad center (center of the quad on the X-axis).
    • "hugeQuadCenterY": integer - The Y quad center (center of the quad on the Y-axis).
    • "hugeOffsetX": integer - The X offset of the image.
    • "hugeOffsetY": integer - The Y offset of the image.
  • (AE) Huge Classic -
    • "hugeClassicQuadCenterX": integer - The X quad center (center of the quad on the X-axis).
    • "hugeClassicQuadCenterY": integer - The Y quad center (center of the quad on the Y-axis).
    • "hugeClassicOffsetX": integer - The X offset of the image.
    • "hugeClassicOffsetY": integer - The Y offset of the image.
  • (AE) Cape -
    • "capeQuadWidth": integer - Width of a single quad (Frame).
    • "capeQuadHeight": integer - Height of a single quad (Frame).
    • "capeImgWidth": integer - The width of the image.
    • "capeImgHeight": integer - The height of the image.
    • "capeQuadCenterX": integer - The X quad center (center of the quad on the X-axis).
    • "capeQuadCenterY": integer - The Y quad center (center of the quad on the Y-axis).
    • "capeOffsetX": integer - The X offset of the image.
    • "capeOffsetY": integer - The Y offset of the image.
  • (AE) Cape Image -
    • "capeImgOffsetX": integer - The X offset of the cape image.
    • "capeImgOffsetY": integer - The Y offset of the cape image.
    • "capeImgFenceOffsetX": integer - The X offset of the image while on a fence.
    • "capeImgFireEnemyOffsetX": integer - The X offset of the image while firing an enemy.
  • (AE) Tiny -
    • "tinyQuadWidth": integer - Width of a single quad (Frame).
    • "tinyQuadHeight": integer - Height of a single quad (Frame).
    • "tinyImgWidth": integer - The width of the image.
    • "tinyImgHeight": integer - The height of the image.
    • "tinyQuadCenterX": integer - The X quad center (center of the quad on the X-axis).
    • "tinyQuadCenterY": integer - The Y quad center (center of the quad on the Y-axis).
    • "tinyOffsetX": integer - The X offset of the image.
    • "tinyOffsetY": integer - The Y offset of the image.
  • (AE) Shell -
    • "shellQuadWidth": integer - Width of a single quad (Frame).
    • "shellQuadHeight": integer - Height of a single quad (Frame).
    • "shellImgWidth": integer - The width of the image.
    • "shellImgHeight": integer - The height of the image.
    • "shellQuadCenterX": integer - The X quad center (center of the quad on the X-axis).
    • "shellQuadCenterY": integer - The Y quad center (center of the quad on the Y-axis).
    • "shellOffsetX": integer - The X offset of the image.
    • "shellOffsetY": integer - The Y offset of the image.
  • (AE) Boomerang -
    • "boomerangQuadWidth": integer - Width of a single quad (Frame).
    • "boomerangQuadHeight": integer - Height of a single quad (Frame).
    • "boomerangImgWidth": integer - The width of the image.
    • "boomerangImgHeight": integer - The height of the image.
    • "boomerangQuadCenterX": integer - The X quad center (center of the quad on the X-axis).
    • "boomerangQuadCenterY": integer - The Y quad center (center of the quad on the Y-axis).
    • "boomerangOffsetX": integer - The X offset of the image.
    • "boomerangOffsetY": integer - The Y offset of the image.
  • (AE) Duck -
    • "duckQuadCenterY": integer - The Y quad center (center of the quad on the Y-axis).
    • "duckOffsetY": integer - The Y offset of the image.
    • "hugeClassicDuckQuadCenterY": integer - The Y quad center (center of the quad on the Y-axis).
    • "hugeClassicDuckOffsetY": integer - The Y offset of the image.
    • "capeImgDuckOffsetY": integer - The Y offset of the image.
  • (AE) Helmets -
    • "helmetOffsetX": integer - The X offset of the helmet.
    • "helmetOffsetY": integer - The Y offset of the helmet.
    • "helmetBigOffsetX": integer - The X offset of the helmet when big.
    • "helmetCapeOffsetX": integer - The X offset of the helmet when cape.
    • "helmetRaccoonOffsetX": integer - The X offset of the helmet when raccoon.
    • "helmetFrogOffsetX": integer - The X offset of the helmet when frog.
    • "helmetFrogOffsetY": integer - The Y offset of the helmet when frog.
    • "helmetSkinnyOffsetX": integer - The X offset of the helmet when skinny.
    • "helmetSkinnyOffsetY": integer - The Y offset of the helmet when skinny.
    • "helmetTinyOffsetX": integer - The X offset of the helmet when tiny.
    • "helmetTinyOffsetY": integer - The Y offset of the helmet when tiny.
    • "helmetSpinOffsetX": integer - Added X offset of the helmet when spinning.
    • "propellerHelmetOffsetX": integer - Added X offset when wearing a propeller helmet.
    • "propellerHelmetOffsetY": integer - Added Y offset when wearing a propeller helmet.
    • "cannonHelmetOffsetX": integer - Added X offset when wearing a cannon helmet.
    • "cannonHelmetOffsetY": integer - Added Y offset when wearing a cannon helmet.
  • (AE) Shoes -
    • "smallYoshiOffsetY": integer - The Y offset when riding yoshi and small.
    • "bigYoshiOffsetY": integer - The Y offset when riding yoshi and big.
    • "hugeYoshiOffsetY": integer - The Y offset when riding yoshi and huge.
    • "tinyYoshiOffsetY": integer - The Y offset when riding yoshi and tiny.
    • "hugeClassicYoshiOffsetY": integer - The Y offset when riding yoshi and huge classic.
    • "yoshiImgOffsetY": integer - The Y offset of yoshi's image.
    • "yoshiImgHugeOffsetY": integer - The Y offset of yoshi's image when huge.
    • "yoshiWalkOffsets": array[integer] - Added Y offsets for yoshi's walk frames.
    • "yoshiSkinnyOffsetY": array[integer] - The Y offsets for mario when on yoshi and skinny.
    • "yoshiTinyOffsetY": array[integer] - The Y offsets for mario when on yoshi and tiny.
    • "smallShoeOffsetY": integer - The Y offset when in a shoe and small.
    • "bigShoeOffsetY": integer - The Y offset when in a shoe and big.
    • "hugeShoeOffsetY": integer - The Y offset when in a shoe and huge.
    • "tinyShoeOffsetY": integer - The Y offset when in a shoe and tiny.
    • "hugeClassicShoeOffsetY": integer - The Y offset when in a shoe and huge classic.
    • "shoeImgOffsetY": integer - The Y offset of the shoe.
    • "shoeImgHugeOffsetY": integer - The Y offset of the shoe when huge.
    • "shoeImgHugeClassicOffsetY": integer - The Y offset of the shoe when huge classic.
    • "cloudImgOffsetY": integer - The Y offset of the cloud.
    • "cloudImgHugeOffsetY": integer - The Y offset of the cloud when huge.
    • "cloudImgHugeClassicOffsetY": integer - The Y offset of the cloud when huge classic.
    • "drybonesShellImgOffsetY": integer - The Y offset of the drybones shell.
    • "drybonesShellImgHugeOffsetY": integer - The Y offset of the drybones shell when huge.
    • "drybonesShellImgHugeClassicOffsetY": integer - The Y offset of the drybones shell when huge classic.
    • "drybonesShellImgDuckingOffsetY": integer - The Y offset of the drybones shell when ducking.
    • "drybonesShellImgDuckingHugeOffsetY": integer - The Y offset of the drybones shell when ducking and huge.
    • "drybonesShellImgDuckingHugeClassicOffsetY": integer - The Y offset of the drybones shell when ducking and huge classic.

Physics -[]

  • Walking -
    • "walkAcceleration": integer - Acceleration while walking on the ground. [Default = 8]
    • "walkAccelerationAir": integer - Acceleration while walking and in the air. [Default = 8]
    • "runAcceleration": integer - Acceleration while running on the ground. [Default = 16]
    • "runAccelerationAir": integer - Acceleration while running and in the air. [Default = 16]
    • "minSpeed": integer - Minimum speed a player can be at. [Default = 0.7]
    • "frogMinSpeed": integer - Minimum speed a player can be at while a frog. [Default = 6.3]
    • "maxWalkSpeed": integer - Maximum speed a player can be at while walking. [Default = 6.4]
    • "maxRunSpeed": integer - Maximum speed a player can be at while running. [Default = 9]
    • "friction": integer - A players friction (higher friction == less slippy). [Default = 14]
    • "frictionAir": integer - A players friction while in the air. [Default = 0]
    • "superFriction": integer - Friction when past max run speed. [Default = 100]
    • "airSlideFactor": integer - Multiply of acceleration in air when changing direction. [Default = 0.8]
    • "iceFriction": integer - Friction when on ice. [Default = 3]
    • "iceWalkAcceleration": integer - Acceleration while walking on ice. [Default = 4]
    • "iceRunAcceleration": integer - Acceleration while running on ice. [Default = 8]
  • Jumping -
    • "YAcceleration": integer - Players gravity. [Default = 80]
    • "YAccelerationJumping": integer - Players gravity while jumping. [Default = 30]
    • "tinyMarioGravity": integer - Players gravity when tiny. [Default = 32]
    • "tinyMarioGravityJumping": integer - Players gravity when ting and while jumping. [Default = 24]
    • "skinnyMarioGravity": integer - Players gravity when skinny. [Default = 24]
    • "jumpForce": integer - Force applied when player jumps. [Default = 16]
    • "jumpForceAdd": integer - How much jumpforce is added at max speed. [Default = 1.9]
    • "raccoonJumpForce": integer - Force applied when player jumps while a raccoon. [Default = 20]
    • "raccoonJumpForceAdd": integer - How much jumpforce is added at max speed while a raccoon. [Default = 2]
    • "raccoonFlyJumpForce": integer - Force applied when player jumps while a raccoon and flying (gonna be honest, i have no idea). [Default = 10]
    • "raccoonFlyTime": integer - Time the player can raccoon fly for. [Default = 5]
    • "capeJumpForce": integer - Force applied when player jumps while wearing a cape. [Default = 22]
    • "passiveSpeed": integer - Speed that the player is pushed at when inside blocks. [Default = 4]
  • Underwater -
    • "UWWalkAcceleration": integer - Acceleration while walking on the ground underwater. [Default = 8]
    • "UWWalkAccelerationAir": integer - Acceleration while walking and in the air underwater. [Default = 8]
    • "UWRunAcceleration": integer - Acceleration while running on the ground underwater. [Default = 16]
    • "UWMaxWalkSpeed": integer - Maximum speed a player can be at while walking underwater. [Default = 3.6]
    • "UWMaxAirWalkSpeed": integer - Maximum speed a player can be at while walking in the air underwater. [Default = 6.4]
    • "UWMaxShellWalkSpeed": integer - Maximum speed a shell can go at underwater.
    • "UWMaxRunSpeed": integer - Maximum speed a player can be at while running underwater. [Default = 5]
    • "UWFriction": integer - A players friction underwater (higher friction == more slippy). [Default = 14]
    • "UWFrictionAir": integer - A players friction while in the air underwater. [Default = 0]
    • "UWSuperFriction": integer - Friction when past max run speed. [Default = 100]
    • "UWAirSlideFactor": integer - Multiply of acceleration in air when changing direction underwater. [Default = 0.8]
    • "UWYAcceleration": integer - Players gravity while underwater. [Default = 9]
    • "UWYAccelerationJumping": integer - Players gravity while jumping underwater. [Default = 12]
    • "UWJumpForce": integer - Force applied when player jumps underwater. [Default = 5.9]
    • "UWJumpForceAdd": integer - How much jumpforce is added at max speed while underwater. [Default = 0]
    • "waterJumpForce": integer - Force applied when player jumps out of water. [Default = ?]
  • Gel -
    • "gelMaxWalkSpeed": integer - Maximum speed while walking on orange gel. [Default = 25]
    • "gelMaxRunSpeed": integer - Maximum speed while running on orange gel. [Default = 50]
    • "gelWalkAcceleration": integer - Acceleration while walking on orange gel. [Default = 12.5]
    • "gelRunAcceleration": integer - Acceleration while running on orange gel. [Default = 25]
    • "blueGelMinForce": integer - Acceleration while running on blue gel. [Default = 0]

Hats -[]

  • "hats": boolean - If hats are enabled or not.
  • "defaultHat": integer - The default hat (0 is none).
  • "hatOffsets": table{ properties } - The offsets for hats when small.
  • "bigHatOffsets": table{ properties } - The offsets for hats when big.
  • "skinnyHatOffsets": table{ properties } - The offsets for hats when skinny.
    • "idle": array[Xoffset, Yoffset] - Idle offsets (dose not support multiple offsets sadly).
    • "running": array[array[Xoffset, Yoffset]] - Running offsets.
    • "sliding": array[Xoffset, Yoffset] - slide offsets.
    • "jumping": array[Xoffset, Yoffset] - jumping offsets.
    • "falling": array[Xoffset, Yoffset] - falling offsets.
    • "climbing": array[array[Xoffset, Yoffset]] - climbing offsets.
    • "fence": array[array[Xoffset, Yoffset]] - fence offsets.
    • "swiming": array[array[Xoffset, Yoffset]] - swiming offsets.
    • "grow": array[Xoffset, Yoffset] - grow offsets.
    • "fire": array[Xoffset, Yoffset] - fire offsets.
    • "ducking": array[Xoffset, Yoffset] - duck offsets.
    • "capeFly": array[Xoffset, Yoffset] - cape fly offsets.

(AE) "FireEnemy" -[]

For more information, see Custom Power-ups.Fire enemy allows players to create custom moves for their characters, It works the same as how custom powerups work. See that wiki page for all the properties.

Customizable Colors (SE)[]

Dinoanimations1

animations1.php

  • First, add "BAK" to the end of your current sprite sheets.
  • Then, in a new file, isolate each color for your character, and put each in a separate sprite sheet, naming them "animationsX" starting from 1.
  • Be sure to make everything white, though greys can be used for shading.
  • "animations0" is not colorable, is rendered above hats, and is mostly used for portal guns.
  • "animationsdot" is colored the same as the player's chosen portal color.
  • Black pixels will remain black, no matter how they're colored in-game; thus, small, uncolorable areas of black can be placed in other layers.[settings]

Skins[]

Skins are type of custom character characterized by being simply a set of default colors and hats for an existing character. Making them is simple, just change the default hat and colors to the desired values in the config.txt, and change its name. There aren't many examples, as posting them online is considered bad form.

List of Notable Custom Characters[]

  • Gummibär - Included in the game by default
  • Chell - Included in the game by default
  • Raccoon - Included in the game by default EDIT: not anymore as of 13b
  • Rainbow Dash - Included in the game by default EDIT: not anymore
  • Quote - Included in the game by default EDIT: this one too
  • Dinosaur - Used as the example character for this page
  • Sonic - FASTER IN THE Game
  • Link - uses his sword in game
  • Costume - uses bowser by default - there's more here

Further Reading[]

Custom Character thread

Character Template (AE)

Advertisement