FILES ----- instance_worlds.config interface.config player.config terrestrial_worlds.config [NEW] behaviors\npc\droptrash.behavior behaviors\npc\friendlyidle.behavior behaviors\npc\merchant.behavior behaviors\npc\play.behavior [NEW] behaviors\npc\reactions\beamaway.behavior biomes\surface_detached\alpine.biome [NEW] dialog\alpaca.config dialog\converse.config dialog\gatherer.config [NEW] dungeons\microdungeons\biomes\snow\frozenlake2.json [NEW] dungeons\microdungeons\biomes\snow\secretsnowcave1.json [NEW] dungeons\microdungeons\biomes\snow\secretsnowcave2.json [NEW] dungeons\microdungeons\biomes\snow\snowarch3.json [NEW] dungeons\microdungeons\biomes\snow\snowarch4.json [NEW] dungeons\microdungeons\biomes\snow\snowcabin1.json [NEW] dungeons\microdungeons\biomes\snow\snowcabin2.json dungeons\microdungeons\biomes\snow\snowmicrodungeons.dungeon [NEW] dungeons\undergroundmaze\mazeaviantemple\mazeaviantemple.dungeon dungeons\undergroundmaze\mazeglitch1\corner2c.json dungeons\undergroundmaze\mazeglitch1\corner2d.json dungeons\undergroundmaze\mazeglitch1\corner2e.json dungeons\undergroundmaze\mazeglitch1\corner4e.json dungeons\undergroundmaze\mazeglitch1\drop1a.json dungeons\undergroundmaze\mazeglitch1\drop1b.json dungeons\undergroundmaze\mazeglitch1\drop1d.json dungeons\undergroundmaze\mazeglitch1\endleft1c.json dungeons\undergroundmaze\mazeglitch1\endleft2c.json dungeons\undergroundmaze\mazeglitch1\endleft2cchest.json dungeons\undergroundmaze\mazeglitch1\endright1c.json dungeons\undergroundmaze\mazeglitch1\endright2c.json dungeons\undergroundmaze\mazeglitch1\endright2cchest.json dungeons\undergroundmaze\mazeglitch1\hall1c.json dungeons\undergroundmaze\mazeglitch1\hall1f.json dungeons\undergroundmaze\mazeglitch1\hall1g.json dungeons\undergroundmaze\mazeglitch1\hall1h.json dungeons\undergroundmaze\mazeglitch1\hall1i.json dungeons\undergroundmaze\mazeglitch1\hall2a.json dungeons\undergroundmaze\mazeglitch1\hall2c.json dungeons\undergroundmaze\mazeglitch1\hall2f.json dungeons\undergroundmaze\mazeglitch1\hall2g.json dungeons\undergroundmaze\mazeglitch1\hall2h.json dungeons\undergroundmaze\mazeglitch1\hall2i.json dungeons\undergroundmaze\mazeglitch1\junction1a.json dungeons\undergroundmaze\mazeglitch1\junction1b.json dungeons\undergroundmaze\mazeglitch1\junction1c.json dungeons\undergroundmaze\mazeglitch1\junction1d.json dungeons\undergroundmaze\mazeglitch1\junction2a.json dungeons\undergroundmaze\mazeglitch1\junction2b.json dungeons\undergroundmaze\mazeglitch1\junction2c.json dungeons\undergroundmaze\mazeglitch1\junction2d.json dungeons\undergroundmaze\mazeglitch1\junction3a.json dungeons\undergroundmaze\mazeglitch1\junction3b.json dungeons\undergroundmaze\mazeglitch1\junction3c.json dungeons\undergroundmaze\mazeglitch1\junction3d.json dungeons\undergroundmaze\mazeglitch1\junction3e.json dungeons\undergroundmaze\mazeglitch1\junction3f.json dungeons\undergroundmaze\mazeglitch1\junction4a.json dungeons\undergroundmaze\mazeglitch1\junction4b.json dungeons\undergroundmaze\mazeglitch1\junction4c.json dungeons\undergroundmaze\mazeglitch1\junction4d.json dungeons\undergroundmaze\mazeglitch1\junction4e.json dungeons\undergroundmaze\mazeglitch1\junction4f.json dungeons\undergroundmaze\mazeglitch1\longhall1a.json dungeons\undergroundmaze\mazeglitch1\longhall1b.json dungeons\undergroundmaze\mazeglitch1\longhall1c.json dungeons\undergroundmaze\mazeglitch1\longhall1d.json dungeons\undergroundmaze\mazeglitch1\longhall1e.json dungeons\undergroundmaze\mazeglitch1\longhall1f.json dungeons\undergroundmaze\mazeglitch1\longhall1g.json dungeons\undergroundmaze\mazeglitch1\longhall2a.json dungeons\undergroundmaze\mazeglitch1\longhall2b.json dungeons\undergroundmaze\mazeglitch1\longhall2c.json dungeons\undergroundmaze\mazeglitch1\longhall2d.json dungeons\undergroundmaze\mazeglitch1\longhall2e.json dungeons\undergroundmaze\mazeglitch1\longhall2f.json dungeons\undergroundmaze\mazeglitch1\longhall2g.json dungeons\undergroundmaze\mazeglitch1\mazeglitch1.dungeon [NEW] humanoid\dances\postmail.dance items\armors\alpaca\alpacaguard\chest.png items\armors\alpaca\alpacaguard\head.png items\armors\alpaca\alpacaguard\pants.png items\guns\unsorted\ptester.gun [NEW] items\materials\grassyrock.matitem [NEW] items\materials\grassyrock.png items\materials\slush.png monsters\ground\approachstate.lua [NEW] npcs\alpaca.npctype npcs\base.npctype npcs\default_reactions.config npcs\hellprisoner.npctype objects\ancient\challengedoor\challengedoor.animation objects\ancient\challengedoor\challengedoor.lua objects\ancient\challengedoor\challengedoor.object objects\ancient\challengedoor\challengedoor.png objects\ancient\challengedoor\challengedoorlit.png objects\ancient\challengedoor\challengereturndoor.png objects\ancient\challengedoor\challengereturndoorlit.png objects\ancient\challengedoor\default.frames objects\colony\colonydeed\colonydeed.lua objects\colony\colonydeed\scanning.lua objects\farmables\swordstone\swordstoneseed.png objects\generic\statuspod\statuspod.object objects\glitch\trashcan\trashcan.object objects\hylotl\arcadedance\arcadedance.object objects\hylotl\clubdecks\clubdecks.object objects\hylotl\clubspeaker\clubspeaker.object objects\hylotl\hylotldrinks\hylotldrinks.object objects\hylotl\hylotlmailbox\hylotlmailbox.object objects\hylotl\hylotltrashcan\hylotltrashcan.object objects\minibiome\alpine\stonebed\stonebed.png objects\minibiome\alpine\stonebed\stonebedcover.png objects\minibiome\alpine\stonechair\stonechair.png objects\minibiome\alpine\stonechest\stonechest.png objects\minibiome\alpine\stonechest\stonechesticon.png objects\minibiome\alpine\stonetable\stonetable.png objects\outpost\bathroomtrash\bathroomtrash.object objects\teleporter\blackteleporter\blackteleporter.object objects\teleporter\brassteleporter\brassteleporter.object objects\teleporter\futureteleporter\futureteleporter.object objects\teleporter\scienceteleporter\scienceteleporter.object objects\teleporter\stoneteleporter\stoneteleporter.object objects\teleporter\tombteleporter\tombteleporter.object objects\teleporter\woodenteleporter\woodenteleporter.object parallax\surface\toxicoceanfloor.parallax [NEW] plants\bushes\ground\alpinestone\alpinestone.bush [NEW] plants\bushes\ground\alpinestone\base1.png [NEW] plants\bushes\ground\alpinestone\base2.png [NEW] plants\bushes\ground\alpinestone\base3.png [NEW] plants\bushes\ground\alpinestone\base4.png [NEW] plants\bushes\ground\alpinestone\base5.png plants\bushes\ground\snowbush\base1.png plants\bushes\ground\snowbush\base2.png plants\bushes\ground\snowbush\base3.png [NEW] plants\bushes\ground\snowbush\base4.png [NEW] plants\bushes\ground\snowbush\base5.png plants\bushes\ground\snowbush\snowbush.bush [NEW] projectiles\guns\unsorted\diamondshard\diamondshard.frames [NEW] projectiles\guns\unsorted\diamondshard\diamondshard.png [NEW] projectiles\guns\unsorted\diamondshard\diamondshard.projectile [NEW] projectiles\guns\unsorted\diamondshard\icon.png [NEW] projectiles\status\bombstatusprojectile\bombstatusprojectile.frames [NEW] projectiles\status\bombstatusprojectile\bombstatusprojectile.png [NEW] projectiles\status\bombstatusprojectile\bombstatusprojectile.projectile [NEW] projectiles\status\bombstatusprojectile\icon.png [NEW] projectiles\status\bombstatusprojectile\statusbomb.frames [NEW] projectiles\status\bombstatusprojectile\statusbomb.png [NEW] projectiles\status\bombstatusprojectile\statusbomb.projectile [NEW] projectiles\status\copperbombstatusprojectile\copperbomb.frames [NEW] projectiles\status\copperbombstatusprojectile\copperbomb.png [NEW] projectiles\status\copperbombstatusprojectile\copperbomb.projectile [NEW] projectiles\status\copperbombstatusprojectile\copperbombstatusprojectile.frames [NEW] projectiles\status\copperbombstatusprojectile\copperbombstatusprojectile.png [NEW] projectiles\status\copperbombstatusprojectile\copperbombstatusprojectile.projectile [NEW] projectiles\status\copperbombstatusprojectile\icon.png [NEW] projectiles\status\diamondbombstatusprojectile\diamondbomb.frames [NEW] projectiles\status\diamondbombstatusprojectile\diamondbomb.png [NEW] projectiles\status\diamondbombstatusprojectile\diamondbomb.projectile [NEW] projectiles\status\diamondbombstatusprojectile\diamondbombstatusprojectile.frames [NEW] projectiles\status\diamondbombstatusprojectile\diamondbombstatusprojectile.png [NEW] projectiles\status\diamondbombstatusprojectile\diamondbombstatusprojectile.projectile [NEW] projectiles\status\diamondbombstatusprojectile\icon.png [NEW] projectiles\status\goldbombstatusprojectile\goldbomb.frames [NEW] projectiles\status\goldbombstatusprojectile\goldbomb.png [NEW] projectiles\status\goldbombstatusprojectile\goldbomb.projectile [NEW] projectiles\status\goldbombstatusprojectile\goldbombstatusprojectile.frames [NEW] projectiles\status\goldbombstatusprojectile\goldbombstatusprojectile.png [NEW] projectiles\status\goldbombstatusprojectile\goldbombstatusprojectile.projectile [NEW] projectiles\status\goldbombstatusprojectile\icon.png projectiles\status\moneystatusprojectile\moneystatusprojectile.projectile [NEW] projectiles\status\platinumbombstatusprojectile\icon.png [NEW] projectiles\status\platinumbombstatusprojectile\platinumbomb.frames [NEW] projectiles\status\platinumbombstatusprojectile\platinumbomb.png [NEW] projectiles\status\platinumbombstatusprojectile\platinumbomb.projectile [NEW] projectiles\status\platinumbombstatusprojectile\platinumbombstatusprojectile.frames [NEW] projectiles\status\platinumbombstatusprojectile\platinumbombstatusprojectile.png [NEW] projectiles\status\platinumbombstatusprojectile\platinumbombstatusprojectile.projectile [NEW] projectiles\status\silverbombstatusprojectile\icon.png [NEW] projectiles\status\silverbombstatusprojectile\silverbomb.frames [NEW] projectiles\status\silverbombstatusprojectile\silverbomb.png [NEW] projectiles\status\silverbombstatusprojectile\silverbomb.projectile [NEW] projectiles\status\silverbombstatusprojectile\silverbombstatusprojectile.frames [NEW] projectiles\status\silverbombstatusprojectile\silverbombstatusprojectile.png [NEW] projectiles\status\silverbombstatusprojectile\silverbombstatusprojectile.projectile [NEW] projectiles\status\waterstatusprojectile\icon.png [NEW] projectiles\status\waterstatusprojectile\waterstatusprojectile.frames [NEW] projectiles\status\waterstatusprojectile\waterstatusprojectile.png [NEW] projectiles\status\waterstatusprojectile\waterstatusprojectile.projectile projectiles\unsorted\money\money.projectile [NEW] scripts\actions\container.lua scripts\actions\reaction.lua [NEW] stats\effects\beamout\beamaway.lua [NEW] stats\effects\beamout\beamaway.statuseffect [NEW] tenants\sub-biome\alpine.tenant [NEW] tiles\materials\grassyrock.material [NEW] tiles\materials\grassyrock.png tiles\materials\slush.material tiles\materials\slush.png [NEW] tiles\mods\alpinegrass.matmod [NEW] tiles\mods\alpinegrass.png DIFFS ----- instance_worlds.config 17,22c17,18 < "drawables" : [ { < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "layers" : [ { > "scale" : 0.055, 25,29c21 < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.055, 32,36c24 < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.055, 39,44c27,28 < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, < "image" : "/celestial/system/terrestrial/biomes/forest/maskie1.png?hueshift=-45?addmask=/celestial/system/terrestrial/dynamics/temperate/5.png" --- > "scale" : 0.055, > "image" : "/celestial/system/terrestrial/biomes/forest/maskie1.png?hueshift=-45?addmask=/celestial/system/terrestrial/dynamics/temperate/5.png" 46,51c30,31 < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, < "image" : "/celestial/system/terrestrial/shadows/9.png" --- > "scale" : 0.055, > "image" : "/celestial/system/terrestrial/shadows/9.png" 56,61c36,37 < "drawables" : [ { < "scale" : [ 0.15, 0.15 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "layers" : [ { > "scale" : 0.15, 64,68c40 < "scale" : [ 0.15, 0.15 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.15, 71,75c43 < "scale" : [ 0.15, 0.15 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.15, 78,82c46 < "scale" : [ 0.15, 0.15 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.15, 123,128c87,88 < "drawables" : [ { < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "layers" : [ { > "scale" : 0.055, 131,135c91 < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.055, 138,142c94 < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.055, 145,150c97,98 < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, < "image" : "/celestial/system/terrestrial/biomes/forest/maskie1.png?hueshift=-45?addmask=/celestial/system/terrestrial/dynamics/temperate/5.png" --- > "scale" : 0.055, > "image" : "/celestial/system/terrestrial/biomes/forest/maskie1.png?hueshift=-45?addmask=/celestial/system/terrestrial/dynamics/temperate/5.png" 152,157c100,101 < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, < "image" : "/celestial/system/terrestrial/shadows/9.png" --- > "scale" : 0.055, > "image" : "/celestial/system/terrestrial/shadows/9.png" 162,167c106,107 < "drawables" : [ { < "scale" : [ 0.15, 0.15 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "layers" : [ { > "scale" : 0.15, 170,174c110 < "scale" : [ 0.15, 0.15 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.15, 177,181c113 < "scale" : [ 0.15, 0.15 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.15, 184,188c116 < "scale" : [ 0.15, 0.15 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.15, 207,212c135,136 < "drawables" : [ { < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "layers" : [ { > "scale" : 0.055, 215,219c139 < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.055, 222,226c142 < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.055, 229,234c145,146 < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, < "image" : "/celestial/system/terrestrial/biomes/forest/maskie1.png?hueshift=-45?addmask=/celestial/system/terrestrial/dynamics/temperate/5.png" --- > "scale" : 0.055, > "image" : "/celestial/system/terrestrial/biomes/forest/maskie1.png?hueshift=-45?addmask=/celestial/system/terrestrial/dynamics/temperate/5.png" 236,241c148,149 < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, < "image" : "/celestial/system/terrestrial/shadows/9.png" --- > "scale" : 0.055, > "image" : "/celestial/system/terrestrial/shadows/9.png" 246,251c154,155 < "drawables" : [ { < "scale" : [ 0.15, 0.15 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "layers" : [ { > "scale" : 0.15, 254,258c158 < "scale" : [ 0.15, 0.15 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.15, 261,265c161 < "scale" : [ 0.15, 0.15 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.15, 268,272c164 < "scale" : [ 0.15, 0.15 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.15, 295,300c187,188 < "drawables" : [ { < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "layers" : [ { > "scale" : 0.055, 303,307c191 < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.055, 310,314c194 < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.055, 317,321c197 < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.055, 324,328c200 < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.055, 334,339c206,207 < "drawables" : [ { < "scale" : [ 0.15, 0.15 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "layers" : [ { > "scale" : 0.15, 342,346c210 < "scale" : [ 0.15, 0.15 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.15, 349,353c213 < "scale" : [ 0.15, 0.15 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.15, 356,360c216 < "scale" : [ 0.15, 0.15 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.15, 397,402c253,254 < "drawables" : [ { < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "layers" : [ { > "scale" : 0.055, 405,409c257 < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.055, 412,416c260 < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.055, 419,423c263 < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.055, 426,430c266 < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.055, 436,441c272,273 < "drawables" : [ { < "scale" : [ 0.15, 0.15 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "layers" : [ { > "scale" : 0.15, 444,448c276 < "scale" : [ 0.15, 0.15 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.15, 451,455c279 < "scale" : [ 0.15, 0.15 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.15, 458,462c282 < "scale" : [ 0.15, 0.15 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.15, 502,507c322,323 < "drawables" : [ { < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "layers" : [ { > "scale" : 0.055, 510,514c326 < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.055, 517,521c329 < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.055, 524,528c332 < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.055, 531,535c335 < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.055, 541,546c341,342 < "drawables" : [ { < "scale" : [ 0.15, 0.15 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "layers" : [ { > "scale" : 0.15, 549,553c345 < "scale" : [ 0.15, 0.15 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.15, 556,560c348 < "scale" : [ 0.15, 0.15 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.15, 563,567c351 < "scale" : [ 0.15, 0.15 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.15, 604,609c388,389 < "drawables" : [ { < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "layers" : [ { > "scale" : 0.055, 612,616c392 < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.055, 619,623c395 < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.055, 626,630c398 < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.055, 633,637c401 < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.055, 643,648c407,408 < "drawables" : [ { < "scale" : [ 0.15, 0.15 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "layers" : [ { > "scale" : 0.15, 651,655c411 < "scale" : [ 0.15, 0.15 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.15, 658,662c414 < "scale" : [ 0.15, 0.15 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.15, 665,669c417 < "scale" : [ 0.15, 0.15 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.15, 706,711c454,455 < "drawables" : [ { < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "layers" : [ { > "scale" : 0.055, 714,718c458 < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.055, 721,725c461 < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.055, 728,732c464 < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.055, 735,739c467 < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.055, 745,750c473,474 < "drawables" : [ { < "scale" : [ 0.15, 0.15 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "layers" : [ { > "scale" : 0.15, 753,757c477 < "scale" : [ 0.15, 0.15 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.15, 760,764c480 < "scale" : [ 0.15, 0.15 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.15, 767,771c483 < "scale" : [ 0.15, 0.15 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.15, 809,814c521,522 < "drawables" : [ { < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "layers" : [ { > "scale" : 0.055, 817,821c525 < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.055, 824,828c528 < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.055, 831,835c531 < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.055, 838,842c534 < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.055, 848,853c540,541 < "drawables" : [ { < "scale" : [ 0.15, 0.15 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "layers" : [ { > "scale" : 0.15, 856,860c544 < "scale" : [ 0.15, 0.15 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.15, 863,867c547 < "scale" : [ 0.15, 0.15 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.15, 870,874c550 < "scale" : [ 0.15, 0.15 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.15, 910,915c586,587 < "drawables" : [ { < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "layers" : [ { > "scale" : 0.055, 918,922c590 < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.055, 925,929c593 < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.055, 932,937c596,597 < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, < "image" : "/celestial/system/terrestrial/biomes/forest/maskie1.png?hueshift=-45?addmask=/celestial/system/terrestrial/dynamics/temperate/5.png" --- > "scale" : 0.055, > "image" : "/celestial/system/terrestrial/biomes/forest/maskie1.png?hueshift=-45?addmask=/celestial/system/terrestrial/dynamics/temperate/5.png" 939,944c599,600 < "scale" : [ 0.055, 0.055 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, < "image" : "/celestial/system/terrestrial/shadows/9.png" --- > "scale" : 0.055, > "image" : "/celestial/system/terrestrial/shadows/9.png" 949,954c605,606 < "drawables" : [ { < "scale" : [ 0.15, 0.15 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "layers" : [ { > "scale" : 0.15, 957,961c609 < "scale" : [ 0.15, 0.15 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.15, 964,968c612 < "scale" : [ 0.15, 0.15 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.15, 971,975c615 < "scale" : [ 0.15, 0.15 ], < "mirrored" : false, < "rotation" : 0, < "flipHorizontal" : false, < "centered" : true, --- > "scale" : 0.15, interface.config 531c531,537 < "debugBackgroundPad" : 5 --- > "debugBackgroundPad" : 5, > > "nametagOpacityRate" : 0.01, > "nametagOffset" : [0, 16], > "nametagColor" : "white", > "nametagFontSize" : 7, > "nametagOpacityBoost" : 3 player.config 554,559d553 < "nametagOpacityRate" : 0.01, < "nametagOffset" : [0, 2], < "nametagColor" : "white", < "nametagFontSize" : 7, < "nametagOpacityBoost" : 3, < terrestrial_worlds.config 442c442 < "secondaryRegion" : [ "garden", "forest", "volcanic", "scorched", "moon", "alpine", "bioluminescence" ], --- > "secondaryRegion" : [ "alpine" ], behaviors\npc\friendlyidle.behavior 9d8 < "title": "dynamic", 11c10 < "name": "dynamic", --- > "name": "selector", 22a22 > "title": "NPC Chat", 25d24 < "title": "NPC Chat", 29a29,51 > "type": "module", > "name": "sleep", > "parameters": {} > }, > { > "type": "decorator", > "name": "cooldown", > "parameters": { > "cooldown": 60 > }, > "child": { > "type": "module", > "name": "sit", > "parameters": {} > } > }, > { > "title": "/behaviors/npc/play.behavior", > "type": "module", > "name": "play", > "parameters": {} > }, > { 31c53 < "name": "selector", --- > "name": "sequence", 36c58 < "name": "sleep", --- > "name": "wander", 40,41c62,64 < "type": "decorator", < "name": "cooldown", --- > "title": "Idle", > "type": "action", > "name": "timer", 43,48c66,69 < "cooldown": 60 < }, < "child": { < "type": "module", < "name": "sit", < "parameters": {} --- > "time": [ > 2, > 10 > ] 50,78d70 < }, < { < "type": "module", < "name": "play", < "title": "/behaviors/npc/play.behavior", < "parameters": {} < }, < { < "type": "composite", < "name": "sequence", < "parameters": {}, < "children": [ < { < "type": "module", < "name": "wander", < "parameters": {} < }, < { < "title": "Idle", < "type": "action", < "name": "timer", < "parameters": { < "time": [ < 2, < 10 < ] < } < } < ] behaviors\npc\merchant.behavior 27c27 < "name": "merchant.storeRadius" --- > "path": "merchant.storeRadius" 39c39 < "name": "merchant.waitTime" --- > "path": "merchant.waitTime" 107a108 > "title": "Tenant Baseline Behavior", 110d110 < "title": "Tenant Baseline Behavior", 243a244 > "title": "", 246d246 < "title": "/behaviors/tenant/returnhome.behavior", 412c412 < "name": "noticePlayersRadius" --- > "path": "noticePlayersRadius" 490a491 > "title": "", 493d493 < "title": "/behaviors/tenant/returnhome.behavior", 498a499 > "title": "", 501d501 < "title": "/behaviors/npc/friendlyidle.behavior", behaviors\npc\play.behavior 283,285c283,285 < "title": "succeeder", < "type": "decorator", < "name": "succeeder", --- > "title": "selector", > "type": "composite", > "name": "selector", 287,293c287,293 < "child": { < "title": "sequence", < "type": "composite", < "name": "sequence", < "parameters": {}, < "children": [ < { --- > "children": [ > { > "title": "inverter", > "type": "decorator", > "name": "inverter", > "parameters": {}, > "child": { 300,307c300,323 < }, < { < "title": "inverter", < "type": "decorator", < "name": "inverter", < "parameters": {}, < "child": { < "title": "loungableOccupied", --- > } > }, > { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "inverter", > "type": "decorator", > "name": "inverter", > "parameters": {}, > "child": { > "title": "loungableOccupied", > "type": "action", > "name": "loungableOccupied", > "parameters": { > "entity": "playTarget" > } > } > }, > { > "title": "setLounging", 309c325 < "name": "loungableOccupied", --- > "name": "setLounging", 314,324c330,332 < }, < { < "title": "setLounging", < "type": "action", < "name": "setLounging", < "parameters": { < "entity": "playTarget" < } < } < ] < } --- > ] > } > ] 413a422 > "title": "/behaviors/npc/react.behavior", 416d424 < "title": "/behaviors/npc/react.behavior", 447a456 > "title": "/behaviors/npc/finalreact.behavior", 450d458 < "title": "/behaviors/npc/finalreact.behavior", biomes\surface_detached\alpine.biome 8c8 < "extraSpawns" : [ "cliffcritter" ], --- > "extraSpawns" : [ "cliffcritter", "wintercritter", "yeticritter", "redbreastcritter" ], 15c15 < "extraSpawns" : [ "cliffcritter" ], --- > "extraSpawns" : [ "cliffcritter", "wintercritter", "yeticritter", "redbreastcritter" ], 24,25c24,25 < "mainBlock" : "rock04", < "subBlocks" : [ "snow", "ice" ], --- > "mainBlock" : "grassyrock", > "subBlocks" : [ "snow", "slush" ], 29c29 < "grassMod" : [ "snow" ], --- > "grassMod" : [ "alpinegrass" ], 96,97c96,97 < "baseHueShiftMax" : 40, < "modHueShiftMax" : 180 --- > "baseHueShiftMax" : 0, > "modHueShiftMax" : 0 99a100,114 > }, > { > "mode" : "floor", > "priority" : 2.0, > "variants" : 1, > "distribution" : "/biomes/distributions.config:scatteredLarge", > > "type" : "bush", > "bushes" : [ > { > "name" : "alpinestone", > "baseHueShiftMax" : 0, > "modHueShiftMax" : 0 > } > ] dialog\converse.config 3c3,7 < "default" : [ "I have nothing to say to you" ], --- > "default" : { > "default" : [ > "I have nothing to say to you" > ] > }, dialog\gatherer.config 33a34 > "default" : [ dungeons\microdungeons\biomes\snow\snowmicrodungeons.dungeon 8c8 < "anchor" : [ "icespikepit1", "icespikepit2", "frozenlake1", "snowarch1", "snowarch2", "snowbunker1", "snowhut1", "snowhut2", "snowpitfall1" ], --- > "anchor" : [ "icespikepit1", "icespikepit2", "frozenlake1", "frozenlake2", "secretsnowcave1", "secretsnowcave2", "snowarch1", "snowarch2", "snowarch3", "snowarch4", "snowbunker1", "snowcabin1", "snowcabin2", "snowhut1", "snowhut2", "snowpitfall1" ], 39a40,60 > "name" : "frozenlake2", > "rules" : [ > [ "maxSpawnCount", [1] ] > ], > "def" : [ "tmx", "frozenlake2.json" ] > }, > { > "name" : "secretsnowcave1", > "rules" : [ > [ "maxSpawnCount", [1] ] > ], > "def" : [ "tmx", "secretsnowcave1.json" ] > }, > { > "name" : "secretsnowcave2", > "rules" : [ > [ "maxSpawnCount", [1] ] > ], > "def" : [ "tmx", "secretsnowcave2.json" ] > }, > { 53a75,88 > "name" : "snowarch3", > "rules" : [ > [ "maxSpawnCount", [1] ] > ], > "def" : [ "tmx", "snowarch3.json" ] > }, > { > "name" : "snowarch4", > "rules" : [ > [ "maxSpawnCount", [1] ] > ], > "def" : [ "tmx", "snowarch4.json" ] > }, > { 58a94,107 > }, > { > "name" : "snowcabin1", > "rules" : [ > [ "maxSpawnCount", [1] ] > ], > "def" : [ "tmx", "snowcabin1.json" ] > }, > { > "name" : "snowcabin2", > "rules" : [ > [ "maxSpawnCount", [1] ] > ], > "def" : [ "tmx", "snowcabin2.json" ] dungeons\undergroundmaze\mazeglitch1\corner2c.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\corner2d.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\corner2e.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\corner4e.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\drop1a.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\drop1b.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\drop1d.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\endleft1c.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\endleft2c.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\endleft2cchest.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\endright1c.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\endright2c.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\endright2cchest.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\hall1c.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\hall1f.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\hall1g.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\hall1h.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\hall1i.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\hall2a.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\hall2c.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\hall2f.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\hall2g.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\hall2h.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\hall2i.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\junction1a.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\junction1b.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\junction1c.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\junction1d.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\junction2a.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\junction2b.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\junction2c.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\junction2d.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\junction3a.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\junction3b.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\junction3c.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\junction3d.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\junction3e.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\junction3f.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\junction4a.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\junction4b.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\junction4c.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\junction4d.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\junction4e.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\junction4f.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\longhall1a.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\longhall1b.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\longhall1c.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\longhall1d.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\longhall1e.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\longhall1f.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\longhall1g.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\longhall2a.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\longhall2b.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\longhall2c.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\longhall2d.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\longhall2e.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\longhall2f.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\longhall2g.json [TMX file differences are left out for huge size.] dungeons\undergroundmaze\mazeglitch1\mazeglitch1.dungeon 10c10 < "maxParts" : 50, --- > "maxParts" : 15, 585c585,586 < [ "ignorePartMaximumRule" ] --- > [ "ignorePartMaximumRule" ], > [ "doNotConnectToPart", [ "junction3b", "junction4b" ] ] 593a595 > [ "doNotConnectToPart", [ "junction3b", "junction4b" ] ], 702c704,706 < [ "ignorePartMaximumRule" ] --- > [ "ignorePartMaximumRule" ], > [ "doNotConnectToPart", [ "junction3b", "junction4b" ] ] > 710a715 > [ "doNotConnectToPart", [ "junction3b", "junction4b" ] ], 910c915 < [ "doNotConnectToPart", [ "drop1c", "drop1d", "junction1a", "junction1b", "junction1c", "junction1d", "junction2a", "junction2b", "junction2c", "junction2d", "junction3a", "junction3b", "junction3c", "junction3d", "junction3e", "junction3f", "junction4a", "junction4b", "junction4c", "junction4d", "junction4e", "junction4f" ] ] --- > [ "doNotConnectToPart", [ "drop1c", "drop1d", "endleft1b", "endleft1bChest", "endright1b", "endright1bChest", "junction1a", "junction1b", "junction1c", "junction1d", "junction2a", "junction2b", "junction2c", "junction2d", "junction3a", "junction3b", "junction3c", "junction3d", "junction3e", "junction3f", "junction4a", "junction4b", "junction4c", "junction4d", "junction4e", "junction4f" ] ] 958c963 < [ "doNotConnectToPart", [ "drop1c", "drop1d", "junction1a", "junction1b", "junction1c", "junction1d", "junction2a", "junction2b", "junction2c", "junction2d", "junction3a", "junction3b", "junction3c", "junction3d", "junction3e", "junction3f", "junction4a", "junction4b", "junction4c", "junction4d", "junction4e", "junction4f" ] ] --- > [ "doNotConnectToPart", [ "drop1c", "drop1d", "endleft1b", "endleft1bChest", "endright1b", "endright1bChest", "junction1a", "junction1b", "junction1c", "junction1d", "junction2a", "junction2b", "junction2c", "junction2d", "junction3a", "junction3b", "junction3c", "junction3d", "junction3e", "junction3f", "junction4a", "junction4b", "junction4c", "junction4d", "junction4e", "junction4f" ] ] items\guns\unsorted\ptester.gun 20c20 < "projectileType" : "moneystatusprojectile", --- > "projectileType" : "diamondshard", monsters\ground\approachstate.lua 45c45 < --- > local deltaX 47a48 > deltaX = stateData.firstPather.deltaX 52a54 > deltaX = stateData.secondPather.deltaX 57a60 > deltaX = util.toDirection(option.approachDelta[1]) 79c82 < mcontroller.controlFace(self.pathing.deltaX) --- > mcontroller.controlFace(deltaX) npcs\base.npctype 20c20,89 < "personality" : "normal", --- > "personalities" : [ > [3.0, { > "personality" : "normal", > "reactions" : {} > }], > [1.0, { > "personality" : "friendly", > "reactions" : { > "flee" : [ > [1.0, "quit"] > ], > "default" : [ > [1.0, "smile"], > [1.0, "jumpforjoy"], > [1.0, "laugh"], > [1.0, "oh"], > [5.0, "wink"], > [2.0, "love"], > [1.0, "quit"], > [1.0, "follow"] > ] > } > }], > [1.0, { > "personality" : "jerk", > "reactions" : { > "friendly" : [ > [1.0, "annoyed"] > ], > "cry" : [ > [1.0, "annoyed"], > [1.0, "smile"], > [1.0, "chase"] > ], > "vomit" : [ > [1.0, "annoyed"], > [1.0, "vomit"], > [1.0, "gohome"] > ], > "wallbutton" : [ > [1.0, "punch"] > ], > "music" : [ > [1.0, "annoyed"] > ] > } > }], > [1.0, { > "personality" : "dozy", > "reactions" : { > "default" : [ > [1.0, "bored"], > [1.0, "gohome"] > ], > "bored" : [ > [1.0, "bored"], > [1.0, "gohome"] > ], > "music" : [ > [1.0, "posedance"], > [1.0, "bored"] > ], > "videogame" : [ > [1.0, "typing"], > [1.0, "bored"] > ] > } > }] > ], > npcs\default_reactions.config 6c6 < "unfriendly" : [ --- > "jerk" : [ 53a54,59 > "bored" : [ > [1.0, "cry"], > [1.0, "laugh"], > [1.0, "annoyed"], > [1.0, "gohome"] > ], 173a180,182 > "postmail" : { > "dance" : "postmail" > }, 246a256,261 > }, > "droptrash" : { > "behavior" : "reaction-droptrash" > }, > "beamaway" : { > "behavior" : "reaction-beamaway" npcs\hellprisoner.npctype 3c3 < "baseType" : "hostile", --- > "baseType" : "guard", objects\ancient\challengedoor\challengedoor.animation 20c20,27 < } --- > }, > "vanish" : { > "frames" : 8, > "cycle" : 1.0, > "mode" : "transition", > "transition" : "gone" > }, > "gone" : {} 58a66,78 > }, > > "vanish" : { > "properties" : { > "image" : ":.vanish.", > "fullbright" : true > } > }, > > "gone" : { > "properties" : { > "image" : "" > } 91a112,123 > } > }, > > "vanish" : { > "properties" : { > "image" : ":.vanish." > } > }, > > "gone" : { > "properties" : { > "image" : "" objects\ancient\challengedoor\challengedoor.lua 10a11,19 > > message.setHandler("onTeleport", function(message, isLocal, data) > if not entity.configParameter("returnDoor") and not storage.vanishTime then > storage.vanishTime = world.time() + entity.configParameter("vanishTime") > if not (entity.animationState("portal") == "open" or entity.animationState("portal") == "on") then > entity.setAnimationState("portal", "open") > end > end > end) 13a23,29 > if entity.animationState("portal") == "gone" then > entity.smash() > return > elseif storage.vanishTime and world.time() > storage.vanishTime then > entity.setAnimationState("portal", "vanish") > end > 23c39 < elseif #players == 0 and entity.animationState("portal") == "on" then --- > elseif #players == 0 and entity.animationState("portal") == "on" and not storage.vanishTime then objects\ancient\challengedoor\challengedoor.object 39c39,41 < "scriptDelta" : 20 --- > "scriptDelta" : 20, > > "vanishTime" : 15 objects\ancient\challengedoor\default.frames 4c4 < "dimensions" : [4, 1], --- > "dimensions" : [8, 2], 6c6,7 < [ "default.open.1", "default.open.2", "default.open.3", "default.open.4" ] --- > [ "default.open.1", "default.open.2", "default.open.3", "default.open.4", null, null, null, null ], > [ "default.vanish.1", "default.vanish.2", "default.vanish.3", "default.vanish.4", "default.vanish.5", "default.vanish.6", "default.vanish.7", "default.vanish.8" ] objects\colony\colonydeed\colonydeed.lua 81,89c81 < if isOccupied() then < for _,tenant in ipairs(storage.occupier.tenants) do < if tenant.uniqueId and world.findUniqueEntity(tenant.uniqueId) then < local entityId = world.loadUniqueEntity(tenant.uniqueId) < world.callScriptedEntity(entityId, "tenant.evictTenant") < end < end < storage.occupier = nil < end --- > evictTenants() 197a190 > util.debugLog("Evicting tenant(s)...") 332c325 < local tags, floor, poly = findHouseBoundary(self.position, self.maxPerimeter) --- > local house = findHouseBoundary(self.position, self.maxPerimeter) 334,335c327,328 < if poly then < local scanResults = scanHouseContents(tags, poly) --- > if house.fullyLoaded and house.poly then > local scanResults = scanHouseContents(house.tags, house.poly) 340c333 < boundary = poly, --- > boundary = house.poly, 343c336 < floorPosition = floor --- > floorPosition = house.floor 355a349,353 > elseif house.fullyLoaded then > util.debugLog("Scan failed") > entity.setAnimationState("deedState", "error") > else > util.debugLog("Parts of the house are unloaded - skipping scan") 357,358d354 < util.debugLog("Scan failed") < entity.setAnimationState("deedState", "error") 379c375,380 < local tags, floor, poly = findHouseBoundary(self.position, self.maxPerimeter) --- > local house = findHouseBoundary(self.position, self.maxPerimeter) > > if not house.fullyLoaded then > util.debugLog("Parts of the house are unloaded - skipping integrity check") > return storage.grumbles > end 381c382 < if not poly then --- > if not house.poly then 385,386c386,387 < storage.house.floorPosition = floor < storage.house.boundary = poly --- > storage.house.floorPosition = house.floor > storage.house.boundary = house.poly 389c390 < local scanResults = scanHouseContents(tags, poly) --- > local scanResults = scanHouseContents(house.tags, house.poly) objects\colony\colonydeed\scanning.lua 69c69,74 < return {}, nil --- > return { > tags = {}, > floor = nil, > poly = nil, > fullyLoaded = true > } 75c80,85 < return tags, nil --- > return { > tags = tags, > floor = nil, > poly = nil, > fullyLoaded = true > } 85a96,97 > local fullyLoaded = not world.polyCollision(poly, nil, {"Null"}) > 87c99,104 < return tags, nil --- > return { > tags = tags, > floor = nil, > poly = nil, > fullyLoaded = true > } 95c112,117 < return tags, floor, poly --- > return { > tags = tags, > floor = floor, > poly = poly, > fullyLoaded = fullyLoaded > } objects\generic\statuspod\statuspod.object 1c1 < { --- > { 35c35 < --- > "activationTime" : 900, 51c51 < "projectileType" : "healingstatusprojectile", --- > "projectileType" : "waterstatusprojectile", 58a59,62 > "projectileType" : "healingstatusprojectile", > "projectileParams" : { } > }, > { 66a71,100 > "projectileType" : "moneystatusprojectile", > "projectileParams" : { } > }, > { > "projectileType" : "bombstatusprojectile", > "projectileParams" : { } > }, > { > "projectileType" : "diamondbombstatusprojectile", > "projectileParams" : { } > }, > { > "projectileType" : "copperbombstatusprojectile", > "projectileParams" : { } > }, > { > "projectileType" : "silverbombstatusprojectile", > "projectileParams" : { } > }, > { > "projectileType" : "goldbombstatusprojectile", > "projectileParams" : { } > }, > { > "projectileType" : "platinumbombstatusprojectile", > "projectileParams" : { } > } > // need to be better! > /* > { 86,88c120,121 < ], < < "activationTime" : 600 --- > */ > ] objects\glitch\trashcan\trashcan.object 39c39,58 < "npcToy" : {} --- > "scripts" : [ "/scripts/npcToyObject.lua"], > "npcToy" : { > "influence" : [ > "trashcan", > "trashcanComplete" > ], > "defaultReactions" : { > "trashcan" : [ > [1.0, "droptrash"] > ], > "trashcanComplete" : [ > [1.0, "smile"], > [1.0, "annoyed"], > [1.0, "punch"] > ] > }, > "preciseStandPositionLeft" : [-1, 0.0], > "preciseStandPositionRight" : [1, 0.0], > "maxNpcs" : 1 > } objects\hylotl\arcadedance\arcadedance.object 35c35,52 < "npcToy" : {} --- > "scripts" : [ "/scripts/npcToyObject.lua"], > "npcToy" : { > "influence" : [ > "music", > "music", > "music", > "musicFinished" > ], > "defaultReactions" : { > "musicFinished" : [ > [1.0, "smile"], > [1.0, "laugh"] > ] > }, > "preciseStandPositionLeft" : [-1, 0.0], > "preciseStandPositionRight" : [1, 0.0], > "maxNpcs" : 1 > } objects\hylotl\clubdecks\clubdecks.object 34c34,52 < "npcToy" : {} --- > "scripts" : [ > "/scripts/npcToyObject.lua" > ], > > "npcToy" : { > "influence" : [ > "music", > "music", > "music", > "musicFinished" > ], > "defaultReactions" : { > "musicFinished" : [ > [1.0, "smile"], > [1.0, "laugh"] > ] > }, > "randomStandXRange" : [-8, 8] > } objects\hylotl\clubspeaker\clubspeaker.object 33c33,51 < "npcToy" : {} --- > "scripts" : [ > "/scripts/npcToyObject.lua" > ], > > "npcToy" : { > "influence" : [ > "music", > "music", > "music", > "musicFinished" > ], > "defaultReactions" : { > "musicFinished" : [ > [1.0, "smile"], > [1.0, "laugh"] > ] > }, > "randomStandXRange" : [-8, 8] > } objects\hylotl\hylotldrinks\hylotldrinks.object 35c35,61 < "npcToy" : {} --- > "scripts" : [ "/scripts/npcToyObject.lua" ], > "npcToy" : { > "influence" : [ > "vendingmachineActivate", > "vendingmachineCollect", > "vendingmachineConsume", > "vendingmachineComplete" > ], > "defaultReactions" : { > "vendingmachineActivate" : [ > [1.0, "pressbutton"] > ], > "vendingmachineCollect" : [ > [1.0, "crouchcollect"] > ], > "vendingmachineConsume" : [ > [1.0, "drink"] > ], > "vendingmachineComplete" : [ > [1.0, "smile"], > [0.1, "vomit"] > ] > }, > "preciseStandPositionLeft" : [-0.5, 0.0], > "preciseStandPositionRight" : [2.0, 0.0], > "maxNpcs" : 1 > } objects\hylotl\hylotlmailbox\hylotlmailbox.object 39c39,56 < "npcToy" : {} --- > "scripts" : [ "/scripts/npcToyObject.lua" ], > "npcToy" : { > "influence" : [ > "mailbox", > "mailboxComplete" > ], > "defaultReactions" : { > "mailbox" : [ > [1.0, "postmail"] > ], > "mailboxComplete" : [ > [1.0, "smile"] > ] > }, > "preciseStandPositionLeft" : [-1.0, 0.0], > "preciseStandPositionRight" : [1.0, 0.0], > "maxNpcs" : 1 > } objects\hylotl\hylotltrashcan\hylotltrashcan.object 46c46,65 < "npcToy" : {} --- > "scripts" : [ "/scripts/npcToyObject.lua"], > "npcToy" : { > "influence" : [ > "trashcan", > "trashcanComplete" > ], > "defaultReactions" : { > "trashcan" : [ > [1.0, "droptrash"] > ], > "trashcanComplete" : [ > [1.0, "smile"], > [1.0, "annoyed"], > [1.0, "punch"] > ] > }, > "preciseStandPositionLeft" : [-1, 0.0], > "preciseStandPositionRight" : [1, 0.0], > "maxNpcs" : 1 > } objects\outpost\bathroomtrash\bathroomtrash.object 40c40,59 < "npcToy" : {} --- > "scripts" : [ "/scripts/npcToyObject.lua"], > "npcToy" : { > "influence" : [ > "trashcan", > "trashcanComplete" > ], > "defaultReactions" : { > "trashcan" : [ > [1.0, "droptrash"] > ], > "trashcanComplete" : [ > [1.0, "smile"], > [1.0, "annoyed"], > [1.0, "punch"] > ] > }, > "preciseStandPositionLeft" : [-1, 0.0], > "preciseStandPositionRight" : [1, 0.0], > "maxNpcs" : 1 > } objects\teleporter\blackteleporter\blackteleporter.object 48c48,66 < "npcToy" : {} --- > "scripts" : [ "/scripts/npcToyObject.lua"], > "npcToy" : { > "influence" : [ > "teleporter", > "teleporterComplete" > ], > "defaultReactions" : { > "teleporter" : [ > [1.0, "beamaway"] > ], > "teleporterComplete" : [ > [1.0, "vomit"], > [1.0, "smile"] > ] > }, > "preciseStandPositionLeft" : [0, 0.0], > "preciseStandPositionRight" : [0, 0.0], > "maxNpcs" : 1 > } objects\teleporter\brassteleporter\brassteleporter.object 30d29 < 48c47,65 < "npcToy" : {} --- > "scripts" : [ "/scripts/npcToyObject.lua"], > "npcToy" : { > "influence" : [ > "teleporter", > "teleporterComplete" > ], > "defaultReactions" : { > "teleporter" : [ > [1.0, "beamaway"] > ], > "teleporterComplete" : [ > [1.0, "vomit"], > [1.0, "smile"] > ] > }, > "preciseStandPositionLeft" : [0, 0.0], > "preciseStandPositionRight" : [0, 0.0], > "maxNpcs" : 1 > } objects\teleporter\futureteleporter\futureteleporter.object 48c48,66 < "npcToy" : {} --- > "scripts" : [ "/scripts/npcToyObject.lua"], > "npcToy" : { > "influence" : [ > "teleporter", > "teleporterComplete" > ], > "defaultReactions" : { > "teleporter" : [ > [1.0, "beamaway"] > ], > "teleporterComplete" : [ > [1.0, "vomit"], > [1.0, "smile"] > ] > }, > "preciseStandPositionLeft" : [0, 0.0], > "preciseStandPositionRight" : [0, 0.0], > "maxNpcs" : 1 > } objects\teleporter\scienceteleporter\scienceteleporter.object 48c48,66 < "npcToy" : {} --- > "scripts" : [ "/scripts/npcToyObject.lua"], > "npcToy" : { > "influence" : [ > "teleporter", > "teleporterComplete" > ], > "defaultReactions" : { > "teleporter" : [ > [1.0, "beamaway"] > ], > "teleporterComplete" : [ > [1.0, "vomit"], > [1.0, "smile"] > ] > }, > "preciseStandPositionLeft" : [0, 0.0], > "preciseStandPositionRight" : [0, 0.0], > "maxNpcs" : 1 > } objects\teleporter\stoneteleporter\stoneteleporter.object 48c48,66 < "npcToy" : {} --- > "scripts" : [ "/scripts/npcToyObject.lua"], > "npcToy" : { > "influence" : [ > "teleporter", > "teleporterComplete" > ], > "defaultReactions" : { > "teleporter" : [ > [1.0, "beamaway"] > ], > "teleporterComplete" : [ > [1.0, "vomit"], > [1.0, "smile"] > ] > }, > "preciseStandPositionLeft" : [0, 0.0], > "preciseStandPositionRight" : [0, 0.0], > "maxNpcs" : 1 > } objects\teleporter\tombteleporter\tombteleporter.object 48c48,66 < "npcToy" : {} --- > "scripts" : [ "/scripts/npcToyObject.lua"], > "npcToy" : { > "influence" : [ > "teleporter", > "teleporterComplete" > ], > "defaultReactions" : { > "teleporter" : [ > [1.0, "beamaway"] > ], > "teleporterComplete" : [ > [1.0, "vomit"], > [1.0, "smile"] > ] > }, > "preciseStandPositionLeft" : [0, 0.0], > "preciseStandPositionRight" : [0, 0.0], > "maxNpcs" : 1 > } objects\teleporter\woodenteleporter\woodenteleporter.object 48c48,66 < "npcToy" : {} --- > "scripts" : [ "/scripts/npcToyObject.lua"], > "npcToy" : { > "influence" : [ > "teleporter", > "teleporterComplete" > ], > "defaultReactions" : { > "teleporter" : [ > [1.0, "beamaway"] > ], > "teleporterComplete" : [ > [1.0, "vomit"], > [1.0, "smile"] > ] > }, > "preciseStandPositionLeft" : [0, 0.0], > "preciseStandPositionRight" : [0, 0.0], > "maxNpcs" : 1 > } parallax\surface\toxicoceanfloor.parallax 28,35d27 < "kind" : "arcticoceanbelow", < "offset" : [0, 450], < "parallax" : 10, < "directives" : "hueshift=-65", < "nohueshift" : true < }, < < { plants\bushes\ground\snowbush\snowbush.bush 17a18,25 > }, > > { > "base" : "base4.png" > }, > > { > "base" : "base5.png" projectiles\status\moneystatusprojectile\moneystatusprojectile.projectile 5c5 < "timeToLive" : 10, --- > "timeToLive" : 1.5, 13c13 < "time" : 1.0, --- > "time" : 0.01, 16,17c16,17 < "inheritDamageFactor" : 1, < "type" : "money" --- > "type" : "money", > "fuzzAngle" : -250 22c22 < "damageKind" : "default", --- > "damageKind" : "hidden", projectiles\unsorted\money\money.projectile 3c3 < "speed" : 180, --- > "speed" : 20, 7a8 > "power" : 0, 17c18 < "emitters" : [ "sparkles" ] --- > "emitters" : [ "lighttrailfast" ] scripts\actions\reaction.lua 4d3 < local personalReactions = entity.configParameter("reactions") 6c5,36 < return mergeReactions(defaultReactions, objectDefaultReactions, personalReactions) --- > return mergeReactions(defaultReactions, objectDefaultReactions, personality().reactions) > end > > function personality() > if not storage.personality then > storage.personality = generatePersonality() > end > return storage.personality > end > > function personalityType() > return personality().personality > end > > function weightedRandom(options) > local totalWeight = 0 > for _,pair in ipairs(options) do > totalWeight = totalWeight + pair[1] > end > > local choice = math.random() * totalWeight > for _,pair in ipairs(options) do > choice = choice - pair[1] > if choice < 0 then > return pair[2] > end > end > return nil > end > > function generatePersonality() > return weightedRandom(entity.configParameter("personalities")) 33c63 < local influence = world.callScriptedEntity(target, "entity.configParameter", "personality") --- > local influence = world.callScriptedEntity(target, "personalityType") 58,73c88,91 < -- randomly choose from the available reactions based on their weights < local totalWeight = 0 < for _,pair in ipairs(reactions) do < totalWeight = totalWeight + pair[1] < end < < local choice = math.random() * totalWeight < for _,pair in ipairs(reactions) do < choice = choice - pair[1] < if choice < 0 then < local reaction = pair[2] < --world.logInfo(entity.id().." reacting with "..reaction) < if output.reaction then < BData:set("reaction", output.reaction, reaction) < end < return true --- > local reaction = weightedRandom(reactions) > if reaction then > if output.reaction then > BData:set("reaction", output.reaction, reaction) 74a93 > return true 327c346 < end \ No newline at end of file --- > end tiles\materials\slush.material 10a11,12 > "falling" : true, > "cascading" : true,