FILES ----- liquids.config merchant.config spawner.config terrestrial_worlds.config [NEW] behaviors\monsters\critter\blooping.behavior behaviors\npc\flee.behavior [NEW] behaviors\npc\follower.behavior behaviors\npc\guard.behavior behaviors\npc\hostileguard.behavior behaviors\npc\hound.behavior behaviors\npc\play.behavior behaviors\npc\react.behavior behaviors\npc\reactionchat.behavior behaviors\npc\runaway.behavior behaviors\npc\sit.behavior biomes\distributions.config biomes\surface\forest.biome biomes\surface_detached\spring.biome [NEW] dungeons\microdungeons\biomes\forest\largef1.json [NEW] dungeons\microdungeons\biomes\forest\medf1.json [NEW] dungeons\microdungeons\biomes\forest\playerforest1.json [NEW] dungeons\microdungeons\biomes\forest\playerforest2.json [NEW] dungeons\microdungeons\biomes\forest\playerforest3.json [NEW] dungeons\microdungeons\biomes\forest\playerforest4.json [NEW] dungeons\microdungeons\biomes\forest\playerforesttemplate.json dungeons\microdungeons\biomes\forest\ruinsmall1.json [NEW] dungeons\microdungeons\biomes\forest\smallf1.json dungeons\microdungeons\biomes\garden\gardenbridge1.json dungeons\microdungeons\biomes\garden\gardenbridge2.json dungeons\microdungeons\biomes\garden\graveyard.json dungeons\microdungeons\biomes\garden\graveyardflowers.json dungeons\microdungeons\biomes\garden\mediumgardenflowers.json dungeons\microdungeons\biomes\garden\mediumgardenruin1.json dungeons\microdungeons\biomes\garden\mediumgardenruinplain.json dungeons\microdungeons\biomes\garden\mediumgardenruintall.json dungeons\microdungeons\biomes\garden\smallgardenflowers.json dungeons\microdungeons\biomes\garden\well1.json dungeons\microdungeons\biomes\garden\well2.json dungeons\microdungeons\biomes\garden\well3.json [NEW] dungeons\microdungeons\biomes\shroom\shroombridge1.json [NEW] dungeons\microdungeons\biomes\shroom\shroombridge2.json [NEW] dungeons\microdungeons\biomes\shroom\shroombridge3.json dungeons\microdungeons\biomes\shroom\shroomhouse1.json [NEW] dungeons\microdungeons\biomes\shroom\shroomhouse10.json [NEW] dungeons\microdungeons\biomes\shroom\shroomhouse11.json [NEW] dungeons\microdungeons\biomes\shroom\shroomhouse12.json [NEW] dungeons\microdungeons\biomes\shroom\shroomhouse13.json [NEW] dungeons\microdungeons\biomes\shroom\shroomhouse14.json [NEW] dungeons\microdungeons\biomes\shroom\shroomhouse15.json dungeons\microdungeons\biomes\shroom\shroomhouse2.json dungeons\microdungeons\biomes\shroom\shroomhouse3.json dungeons\microdungeons\biomes\shroom\shroomhouse4.json dungeons\microdungeons\biomes\shroom\shroomhouse5.json [NEW] dungeons\microdungeons\biomes\shroom\shroomhouse6.json [NEW] dungeons\microdungeons\biomes\shroom\shroomhouse7.json [NEW] dungeons\microdungeons\biomes\shroom\shroomhouse8.json [NEW] dungeons\microdungeons\biomes\shroom\shroomhouse9.json dungeons\microdungeons\biomes\shroom\shroomtemplate.json [NEW] dungeons\microdungeons\biomes\shroom\templatebridge.json [NEW] dungeons\microdungeons\biomes\shroom\templateignore1.json [NEW] dungeons\microdungeons\biomes\shroom\templateignore2.json [NEW] dungeons\microdungeons\biomes\shroom\templateignore3.json dungeons\microdungeons\biomes\spring\crittergroup3.json [NEW] dungeons\microdungeons\biomes\spring\hugepool1.json [NEW] dungeons\microdungeons\biomes\spring\hugepool2.json [NEW] dungeons\microdungeons\biomes\spring\hugepool3.json dungeons\microdungeons\biomes\spring\largepool1.json dungeons\microdungeons\biomes\spring\largepool2.json dungeons\microdungeons\biomes\spring\largepool3.json dungeons\microdungeons\biomes\spring\largepool4.json dungeons\microdungeons\biomes\spring\largepool5.json dungeons\microdungeons\biomes\spring\largepool6.json dungeons\microdungeons\biomes\spring\largepool7.json dungeons\microdungeons\biomes\spring\medpool1.json dungeons\microdungeons\biomes\spring\medpool10.json dungeons\microdungeons\biomes\spring\medpool2.json dungeons\microdungeons\biomes\spring\medpool3.json dungeons\microdungeons\biomes\spring\medpool4.json dungeons\microdungeons\biomes\spring\medpool5.json dungeons\microdungeons\biomes\spring\medpool6.json dungeons\microdungeons\biomes\spring\medpool7.json dungeons\microdungeons\biomes\spring\medpool8.json dungeons\microdungeons\biomes\spring\medpool9.json dungeons\microdungeons\biomes\spring\smallpool1.json dungeons\microdungeons\biomes\spring\smallpool10.json dungeons\microdungeons\biomes\spring\smallpool2.json dungeons\microdungeons\biomes\spring\smallpool3.json dungeons\microdungeons\biomes\spring\smallpool4.json dungeons\microdungeons\biomes\spring\smallpool5.json dungeons\microdungeons\biomes\spring\smallpool6.json dungeons\microdungeons\biomes\spring\smallpool7.json dungeons\microdungeons\biomes\spring\smallpool8.json dungeons\microdungeons\biomes\spring\smallpool9.json dungeons\microdungeons\subbiomes\ocean\oceankind1.json dungeons\microdungeons\subbiomes\ocean\oceankind10.json dungeons\microdungeons\subbiomes\ocean\oceankind2.json dungeons\microdungeons\subbiomes\ocean\oceankind3.json dungeons\microdungeons\subbiomes\ocean\oceankind4.json dungeons\microdungeons\subbiomes\ocean\oceankind5.json dungeons\microdungeons\subbiomes\ocean\oceankind6.json dungeons\microdungeons\subbiomes\ocean\oceankind7.json dungeons\microdungeons\subbiomes\ocean\oceankind8.json dungeons\microdungeons\subbiomes\ocean\oceankind9.json dungeons\microdungeons\template\templatemedium.json dungeons\microdungeons\template\templatesmall.json dungeons\missions\hylotlmissions\hylotlmission1.json dungeons\other\challengerooms\hylotlmission1.json humanoid\dances\posedance.dance [NEW] humanoid\dances\punch.dance humanoid\dances\typing.dance [NEW] monsters\critter\jellycritter\body.frames [NEW] monsters\critter\jellycritter\body.monsterpart [NEW] monsters\critter\jellycritter\body.png [NEW] monsters\critter\jellycritter\jellycritter.animation [NEW] monsters\critter\jellycritter\jellycritter.monstertype monsters\swimming\smallfish\fish.animation monsters\swimming\smallfish\fin\basicfin\basicfin.png [NEW] monsters\swimming\smallfish\fin\crystalfin\crystalfin.monsterpart [NEW] monsters\swimming\smallfish\fin\crystalfin\crystalfin.png [NEW] monsters\swimming\smallfish\fin\fanfin\fanfin.monsterpart [NEW] monsters\swimming\smallfish\fin\fanfin\fanfin.png [NEW] monsters\swimming\smallfish\fin\plainfin\plainfin.monsterpart [NEW] monsters\swimming\smallfish\fin\plainfin\plainfin.png [NEW] monsters\swimming\smallfish\fin\scopefin\scopefin.monsterpart [NEW] monsters\swimming\smallfish\fin\scopefin\scopefin.png [NEW] monsters\swimming\smallfish\head\anglerhead\anglerhead.monsterpart [NEW] monsters\swimming\smallfish\head\anglerhead\anglerhead.png [NEW] monsters\swimming\smallfish\head\barreleyehead\barreleyehead.monsterpart [NEW] monsters\swimming\smallfish\head\barreleyehead\barreleyehead.png [NEW] monsters\swimming\smallfish\head\blobhead\blobhead.monsterpart [NEW] monsters\swimming\smallfish\head\blobhead\blobhead.png [NEW] monsters\swimming\smallfish\head\codhead\codhead.monsterpart [NEW] monsters\swimming\smallfish\head\codhead\codhead.png [NEW] monsters\swimming\smallfish\head\eyehead\eyehead.monsterpart [NEW] monsters\swimming\smallfish\head\eyehead\eyehead.png monsters\swimming\smallfish\head\fishhead\fishhead.png [NEW] monsters\swimming\smallfish\head\gulperhead\gulperhead.monsterpart [NEW] monsters\swimming\smallfish\head\gulperhead\gulperhead.png [NEW] monsters\swimming\smallfish\head\neon1head\neon1head.monsterpart [NEW] monsters\swimming\smallfish\head\neon1head\neon1head.png [NEW] monsters\swimming\smallfish\head\neon2head\neon2head.monsterpart [NEW] monsters\swimming\smallfish\head\neon2head\neon2head.png [NEW] monsters\swimming\smallfish\head\neon3head\neon3head.monsterpart [NEW] monsters\swimming\smallfish\head\neon3head\neon3head.png [NEW] monsters\swimming\smallfish\head\pcodhead\pcodhead.monsterpart [NEW] monsters\swimming\smallfish\head\pcodhead\pcodhead.png [NEW] monsters\swimming\smallfish\head\robohead\robohead.monsterpart [NEW] monsters\swimming\smallfish\head\robohead\robohead.png [NEW] monsters\swimming\smallfish\head\squid1head\squid1head.monsterpart [NEW] monsters\swimming\smallfish\head\squid1head\squid1head.png [NEW] monsters\swimming\smallfish\head\squid2head\squid2head.monsterpart [NEW] monsters\swimming\smallfish\head\squid2head\squid2head.png [NEW] monsters\swimming\smallfish\head\squid3head\squid3head.monsterpart [NEW] monsters\swimming\smallfish\head\squid3head\squid3head.png [NEW] monsters\swimming\smallfish\head\strawhead\strawhead.monsterpart [NEW] monsters\swimming\smallfish\head\strawhead\strawhead.png [NEW] monsters\swimming\smallfish\head\swordhead\swordhead.monsterpart [NEW] monsters\swimming\smallfish\head\swordhead\swordhead.png [NEW] monsters\swimming\smallfish\tail\dualswimmertail\dualswimmertail.monsterpart [NEW] monsters\swimming\smallfish\tail\dualswimmertail\dualswimmertail.png [NEW] monsters\swimming\smallfish\tail\fantail\fantail.monsterpart [NEW] monsters\swimming\smallfish\tail\fantail\fantail.png monsters\swimming\smallfish\tail\fishtail\fishtail.png [NEW] monsters\swimming\smallfish\tail\flippertail\flippertail.monsterpart [NEW] monsters\swimming\smallfish\tail\flippertail\flippertail.png [NEW] monsters\swimming\smallfish\tail\propellertail\propellertail.monsterpart [NEW] monsters\swimming\smallfish\tail\propellertail\propellertail.png [NEW] monsters\swimming\smallfish\tail\squidtail\squidtail.monsterpart [NEW] monsters\swimming\smallfish\tail\squidtail\squidtail.png [NEW] monsters\swimming\smallfish\tail\swimmertail\swimmertail.monsterpart [NEW] monsters\swimming\smallfish\tail\swimmertail\swimmertail.png npcs\default_reactions.config npcs\follower.npctype npcs\merchantpools.config npcs\mission\florangladiator.npctype npcs\mission\floranpredator.npctype npcs\mission\floransniper.npctype npcs\outpost\outpostcivilian.npctype objects\arttrophies\paintingmonalisa\paintingmonalisa.object objects\generic\arcademachine\arcademachine.object objects\generic\woodchair\woodchair.object [NEW] objects\human\jukebox\jukebox.lua objects\human\jukebox\jukebox.object plants\trees\forest\stem\birch\parallax\forestlargetree\base\1.png plants\trees\forest\stem\birch\parallax\forestsmalltree\base\1.png plants\trees\forest\stem\birch\parallax\foresttreesback\base\1.png plants\trees\forest\stem\cocoa\parallax\forestlargetree\base\1.png plants\trees\forest\stem\cocoa\parallax\forestsmalltree\base\1.png plants\trees\forest\stem\roottree\parallax\forestlargetree\base\1.png plants\trees\forest\stem\roottree\parallax\forestsmalltree\base\1.png plants\trees\forest\stem\roottree\parallax\foresttreesback\base\1.png plants\trees\forest\stem\slimey\parallax\forestlargetree\base\1.png plants\trees\forest\stem\something\parallax\forestlargetree\base\1.png plants\trees\forest\stem\something\parallax\forestsmalltree\base\1.png plants\trees\forest\stem\spikey\parallax\forestlargetree\base\1.png plants\trees\forest\stem\spikey\parallax\forestsmalltree\base\1.png plants\trees\forest\stem\spikey\parallax\foresttreesback\base\1.png plants\trees\forest\stem\twisted\parallax\forestlargetree\base\1.png plants\trees\forest\stem\twisted\parallax\forestsmalltree\base\1.png plants\trees\forest\stem\twisted\parallax\foresttreesback\base\1.png plants\trees\savannah\foliage\spikeyfoliage\parallax\forestcanopy\base\1.png [NEW] scripts\npctoyobject.lua scripts\pathing.lua scripts\actions\entities.lua scripts\actions\reaction.lua scripts\behavior\decorator.lua [NEW] stats\effects\regeneration\healingwater.animation [NEW] stats\effects\regeneration\healingwater.statuseffect terrain\surface\remixedmildsurface.terrain terrain\surface\remixedmountainssurface.terrain terrain\surface\remixedsurface.terrain DIFFS ----- liquids.config 112c112 < "statusEffects" : [ "regeneration1" ], --- > "statusEffects" : [ "healingwater" ], merchant.config 9a10 > "defaultItemPrice" : 1, spawner.config 699c699 < "monsterType" : "fish", --- > "monsterType" : "fishcritter", terrestrial_worlds.config 727c727 < "blockSelector" : [ "remixedSurface" ], --- > "blockSelector" : [ "remixedMildSurface" ], 735c735 < "blockSelector" : [ "remixedSurface", "remixedMildCanyonsSurface" ], --- > "blockSelector" : [ "remixedMildSurface", "remixedMildCanyonsSurface" ], 752c752 < "blockSelector" : [ "remixedSurface", "remixedMildCanyonsSurface" ], --- > "blockSelector" : [ "remixedMildSurface", "remixedMildCanyonsSurface" ], behaviors\npc\flee.behavior 109a110,118 > }, > { > "title": "sayToEntity", > "type": "action", > "name": "sayToEntity", > "parameters": { > "dialogType": "flee.dialog.safe", > "entity": "fleeTarget" > } behaviors\npc\guard.behavior 4c4,8 < "scripts": [], --- > "scripts": [ > "/scripts/actions/entities.lua", > "/npcs/bmain.lua", > "/scripts/behavior.lua" > ], 32c36 < "trackingRange": 50 --- > "trackingRange": 100 36,39c40,209 < "type": "module", < "path": "/behaviors/npc/combat.behavior", < "title": "NPC Combat", < "parameters": {} --- > "title": "cleanup", > "type": "composite", > "name": "cleanup", > "parameters": {}, > "children": [ > { > "title": "runner", > "type": "action", > "name": "runner", > "parameters": {} > }, > { > "title": "selector", > "type": "composite", > "name": "selector", > "parameters": {}, > "children": [ > { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": { > "type": "sliding", > "state": "off", > "fromEntity": "attackTarget", > "toEntity": "fleeTarget" > }, > "children": [ > { > "title": "entityExists", > "type": "action", > "name": "entityExists", > "parameters": { > "entity": "target" > } > }, > { > "title": "sayToEntity", > "type": "action", > "name": "sayToEntity", > "parameters": { > "dialogType": "dialog.lostTarget", > "entity": "target", > "tags": {} > } > } > ] > }, > { > "title": "sayToEntity", > "type": "action", > "name": "sayToEntity", > "parameters": { > "dialogType": "dialog.killedTarget", > "entity": "target", > "tags": {} > } > } > ] > } > ] > }, > { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": { > "type": "sliding", > "state": "off", > "fromEntity": "attackTarget", > "toEntity": "fleeTarget" > }, > "children": [ > { > "title": "succeeder", > "type": "decorator", > "name": "succeeder", > "parameters": {}, > "child": { > "title": "selector", > "type": "composite", > "name": "selector", > "parameters": {}, > "children": [ > { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": { > "type": "sliding", > "state": "off", > "fromEntity": "attackTarget", > "toEntity": "fleeTarget" > }, > "children": [ > { > "title": "entityInTypes", > "type": "action", > "name": "entityInTypes", > "parameters": { > "entity": "target", > "types": [ > "player" > ] > } > }, > { > "title": "selector", > "type": "composite", > "name": "selector", > "parameters": {}, > "children": [ > { > "title": "listContains", > "type": "action", > "name": "listContains", > "parameters": { > "list": "seenplayers", > "entity": "target" > } > }, > { > "title": "failer", > "type": "decorator", > "name": "failer", > "parameters": {}, > "child": { > "title": "listPush", > "type": "action", > "name": "listPush", > "parameters": { > "list": "seenplayers", > "entity": "target" > } > } > } > ] > }, > { > "title": "sayToEntity", > "type": "action", > "name": "sayToEntity", > "parameters": { > "dialogType": "dialog.reattack", > "entity": "target", > "tags": {} > } > } > ] > }, > { > "title": "sayToEntity", > "type": "action", > "name": "sayToEntity", > "parameters": { > "dialogType": "dialog.attack", > "entity": "target", > "tags": {} > } > } > ] > } > }, > { > "type": "module", > "path": "/behaviors/npc/combat.behavior", > "title": "NPC Combat", > "parameters": {} > } > ] behaviors\npc\hostileguard.behavior 3c3,8 < "scripts": [], --- > "description": "", > "scripts": [ > "/scripts/actions/entities.lua", > "/npcs/bmain.lua", > "/scripts/behavior.lua" > ], 29,32c34,203 < "type": "module", < "path": "/behaviors/npc/combat.behavior", < "title": "NPC Combat", < "parameters": {} --- > "title": "cleanup", > "type": "composite", > "name": "cleanup", > "parameters": {}, > "children": [ > { > "title": "runner", > "type": "action", > "name": "runner", > "parameters": {} > }, > { > "title": "selector", > "type": "composite", > "name": "selector", > "parameters": {}, > "children": [ > { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": { > "type": "sliding", > "state": "off", > "fromEntity": "attackTarget", > "toEntity": "fleeTarget" > }, > "children": [ > { > "title": "entityExists", > "type": "action", > "name": "entityExists", > "parameters": { > "entity": "target" > } > }, > { > "title": "sayToEntity", > "type": "action", > "name": "sayToEntity", > "parameters": { > "dialogType": "dialog.lostTarget", > "entity": "target", > "tags": {} > } > } > ] > }, > { > "title": "sayToEntity", > "type": "action", > "name": "sayToEntity", > "parameters": { > "dialogType": "dialog.killedTarget", > "entity": "target", > "tags": {} > } > } > ] > } > ] > }, > { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": { > "type": "sliding", > "state": "off", > "fromEntity": "attackTarget", > "toEntity": "fleeTarget" > }, > "children": [ > { > "title": "succeeder", > "type": "decorator", > "name": "succeeder", > "parameters": {}, > "child": { > "title": "selector", > "type": "composite", > "name": "selector", > "parameters": {}, > "children": [ > { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": { > "type": "sliding", > "state": "off", > "fromEntity": "attackTarget", > "toEntity": "fleeTarget" > }, > "children": [ > { > "title": "entityInTypes", > "type": "action", > "name": "entityInTypes", > "parameters": { > "entity": "target", > "types": [ > "player" > ] > } > }, > { > "title": "selector", > "type": "composite", > "name": "selector", > "parameters": {}, > "children": [ > { > "title": "listContains", > "type": "action", > "name": "listContains", > "parameters": { > "list": "seenplayers", > "entity": "target" > } > }, > { > "title": "failer", > "type": "decorator", > "name": "failer", > "parameters": {}, > "child": { > "title": "listPush", > "type": "action", > "name": "listPush", > "parameters": { > "list": "seenplayers", > "entity": "target" > } > } > } > ] > }, > { > "title": "sayToEntity", > "type": "action", > "name": "sayToEntity", > "parameters": { > "dialogType": "dialog.reattack", > "entity": "target", > "tags": {} > } > } > ] > }, > { > "title": "sayToEntity", > "type": "action", > "name": "sayToEntity", > "parameters": { > "dialogType": "dialog.attack", > "entity": "target", > "tags": {} > } > } > ] > } > }, > { > "type": "module", > "path": "/behaviors/npc/combat.behavior", > "title": "NPC Combat", > "parameters": {} > } > ] behaviors\npc\hound.behavior 2a3 > "description": "", 6c7 < "/scripts/actions/movement.lua", --- > "/scripts/actions/math.lua", 7a9 > "/scripts/actions/movement.lua", 105a108,153 > }, > { > "title": "failer", > "type": "decorator", > "name": "failer", > "parameters": {}, > "child": { > "title": "cooldown", > "type": "decorator", > "name": "cooldown", > "parameters": { > "cooldown": 30, > "onFail": true > }, > "child": { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": { > "type": "sliding", > "state": "off", > "fromEntity": "attackTarget", > "toEntity": "fleeTarget" > }, > "children": [ > { > "title": "chance", > "type": "action", > "name": "chance", > "parameters": { > "chance": 0.25 > } > }, > { > "title": "sayToEntity", > "type": "action", > "name": "sayToEntity", > "parameters": { > "dialogType": "dialog.hail", > "entity": "player", > "tags": {} > } > } > ] > } > } 186a235,282 > } > } > ] > } > ] > }, > { > "title": "cleanup", > "type": "composite", > "name": "cleanup", > "parameters": {}, > "children": [ > { > "title": "runner", > "type": "action", > "name": "runner", > "parameters": {} > }, > { > "title": "selector", > "type": "composite", > "name": "selector", > "parameters": {}, > "children": [ > { > "title": "entityHoldingSword", > "type": "action", > "name": "entityHoldingSword", > "parameters": { > "entity": "player" > } > }, > { > "title": "entityHoldingGun", > "type": "action", > "name": "entityHoldingGun", > "parameters": { > "entity": "player" > } > }, > { > "title": "sayToEntity", > "type": "action", > "name": "sayToEntity", > "parameters": { > "dialogType": "dialog.weaponSheathed", > "entity": "player", > "tags": {} behaviors\npc\play.behavior 8c8,9 < "/scripts/actions/movement.lua" --- > "/scripts/actions/movement.lua", > "/npcs/bmain.lua" 103c104 < "title": "objectInfluenceSequence", --- > "title": "npcToyIsAvailable", 105c106 < "name": "objectInfluenceSequence", --- > "name": "npcToyIsAvailable", 168c169 < "title": "objectPlayStandPosition", --- > "title": "npcToyPreciseStandPosition", 170c171 < "name": "objectPlayStandPosition", --- > "name": "npcToyPreciseStandPosition", 219a221,256 > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "npcToyImpreciseStandPosition", > "type": "action", > "name": "npcToyImpreciseStandPosition", > "parameters": { > "target": "playTarget" > }, > "output": { > "position": "standPosition" > } > }, > { > "title": "moveToPosition", > "type": "action", > "name": "moveToPosition", > "parameters": { > "avoidLiquid": true, > "groundPosition": true, > "maxGround": 5, > "minGround": -5, > "position": "standPosition", > "run": false, > "failFast": false > }, > "output": { > "direction": "direction" > } > } > ] > }, > { 244,286c281,286 < "title": "interactObject", < "type": "action", < "name": "interactObject", < "parameters": { < "entity": "playTarget" < } < }, < { < "title": "objectInfluenceSequence", < "type": "action", < "name": "objectInfluenceSequence", < "parameters": { < "target": "playTarget" < }, < "output": { < "list": "influences" < } < }, < { < "title": "setEntity", < "type": "action", < "name": "setEntity", < "parameters": { < "entity": "playTarget" < }, < "output": { < "entity": "reactTarget" < } < }, < { < "title": "repeater", < "type": "decorator", < "name": "repeater", < "parameters": { < "maxLoops": -1, < "untilSuccess": true < }, < "child": { < "title": "inverter", < "type": "decorator", < "name": "inverter", < "parameters": {}, < "child": { --- > "title": "cleanup", > "type": "composite", > "name": "cleanup", > "parameters": {}, > "children": [ > { 298c298 < "title": "listPopInfluence", --- > "title": "npcToyPlay", 300c300 < "name": "listPopInfluence", --- > "name": "npcToyPlay", 301a302,312 > "entity": "playTarget" > } > }, > { > "title": "npcToyInfluence", > "type": "action", > "name": "npcToyInfluence", > "parameters": { > "target": "playTarget" > }, > "output": { 302a314,321 > } > }, > { > "title": "setEntity", > "type": "action", > "name": "setEntity", > "parameters": { > "entity": "playTarget" 305c324 < "influence": "influence" --- > "entity": "reactTarget" 309c328 < "title": "succeeder", --- > "title": "repeater", 311,312c330,334 < "name": "succeeder", < "parameters": {}, --- > "name": "repeater", > "parameters": { > "maxLoops": -1, > "untilSuccess": true > }, 314,317c336,375 < "type": "module", < "path": "/behaviors/npc/react.behavior", < "title": "/behaviors/npc/react.behavior", < "parameters": {} --- > "title": "inverter", > "type": "decorator", > "name": "inverter", > "parameters": {}, > "child": { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": { > "type": "sliding", > "state": "off", > "fromEntity": "attackTarget", > "toEntity": "fleeTarget" > }, > "children": [ > { > "title": "listPopInfluence", > "type": "action", > "name": "listPopInfluence", > "parameters": { > "list": "influences" > }, > "output": { > "influence": "influence" > } > }, > { > "title": "succeeder", > "type": "decorator", > "name": "succeeder", > "parameters": {}, > "child": { > "type": "module", > "path": "/behaviors/npc/react.behavior", > "title": "/behaviors/npc/react.behavior", > "parameters": {} > } > } > ] > } 320a379,394 > }, > { > "title": "dance", > "type": "action", > "name": "dance", > "parameters": { > "dance": null > } > }, > { > "title": "npcToyEndPlay", > "type": "action", > "name": "npcToyEndPlay", > "parameters": { > "entity": "playTarget" > } 322c396 < } --- > ] behaviors\npc\react.behavior 657a658,766 > }, > { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "isReaction", > "type": "action", > "name": "isReaction", > "parameters": { > "reactionVar": "reaction", > "reactionName": "punch" > } > }, > { > "title": "emote", > "type": "action", > "name": "emote", > "parameters": { > "emote": "annoyed" > } > }, > { > "title": "timer", > "type": "action", > "name": "timer", > "parameters": { > "time": 0.5 > } > }, > { > "title": "dance", > "type": "action", > "name": "dance", > "parameters": { > "dance": "punch" > } > }, > { > "title": "timer", > "type": "action", > "name": "timer", > "parameters": { > "time": 1.5 > } > } > ] > }, > { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "isReaction", > "type": "action", > "name": "isReaction", > "parameters": { > "reactionVar": "reaction", > "reactionName": "posedance" > } > }, > { > "title": "emote", > "type": "action", > "name": "emote", > "parameters": { > "emote": "happy" > } > }, > { > "title": "faceEntity", > "type": "action", > "name": "faceEntity", > "parameters": { > "entity": "reactTarget" > } > }, > { > "title": "dance", > "type": "action", > "name": "dance", > "parameters": { > "dance": "posedance" > } > }, > { > "title": "timer", > "type": "action", > "name": "timer", > "parameters": { > "time": 1 > } > }, > { > "title": "reverseDirection", > "type": "action", > "name": "reverseDirection", > "parameters": { > "direction": "direction" > }, > "output": { > "direction": "" > } > } > ] behaviors\npc\reactionchat.behavior 14c14 < "title": "sequence", --- > "title": "cleanup", 16c16 < "name": "sequence", --- > "name": "cleanup", 20,52c20,22 < "title": "getPersonality", < "type": "action", < "name": "getPersonality", < "parameters": { < "target": "chatfriend" < }, < "output": { < "influence": "influence" < } < }, < { < "title": "setEntity", < "type": "action", < "name": "setEntity", < "parameters": { < "entity": "chatfriend" < }, < "output": { < "entity": "reactTarget" < } < }, < { < "title": "faceEntity", < "type": "action", < "name": "faceEntity", < "parameters": { < "entity": "reactTarget" < } < }, < { < "title": "resetReaction", < "type": "action", < "name": "resetReaction", --- > "title": "sequence", > "type": "composite", > "name": "sequence", 54,76c24,58 < "output": { < "reaction": "reaction" < } < }, < { < "title": "succeeder", < "type": "decorator", < "name": "succeeder", < "parameters": {}, < "child": { < "title": "task", < "type": "decorator", < "name": "task", < "parameters": { < "groupId": "chat", < "taskId": "first", < "minMembers": 1, < "maxMembers": 1 < }, < "child": { < "title": "sequence", < "type": "composite", < "name": "sequence", --- > "children": [ > { > "title": "getPersonality", > "type": "action", > "name": "getPersonality", > "parameters": { > "target": "chatfriend" > }, > "output": { > "influence": "influence" > } > }, > { > "title": "setEntity", > "type": "action", > "name": "setEntity", > "parameters": { > "entity": "chatfriend" > }, > "output": { > "entity": "reactTarget" > } > }, > { > "title": "faceEntity", > "type": "action", > "name": "faceEntity", > "parameters": { > "entity": "reactTarget" > } > }, > { > "title": "resetReaction", > "type": "action", > "name": "resetReaction", 78,127c60,67 < "children": [ < { < "title": "timer", < "type": "action", < "name": "timer", < "parameters": { < "time": 1 < } < }, < { < "type": "module", < "path": "/behaviors/npc/react.behavior", < "title": "/behaviors/npc/react.behavior", < "parameters": {} < } < ] < } < } < }, < { < "title": "inverter", < "type": "decorator", < "name": "inverter", < "parameters": {}, < "child": { < "title": "isFinalReaction", < "type": "action", < "name": "isFinalReaction", < "parameters": { < "reaction": "reaction" < } < } < }, < { < "title": "repeater", < "type": "decorator", < "name": "repeater", < "parameters": { < "maxLoops": -1, < "untilSuccess": true < }, < "child": { < "title": "inverter", < "type": "decorator", < "name": "inverter", < "parameters": {}, < "child": { < "title": "dynamic", < "type": "composite", < "name": "dynamic", --- > "output": { > "reaction": "reaction" > } > }, > { > "title": "succeeder", > "type": "decorator", > "name": "succeeder", 129,130c69,79 < "children": [ < { --- > "child": { > "title": "task", > "type": "decorator", > "name": "task", > "parameters": { > "groupId": "chat", > "taskId": "first", > "minMembers": 1, > "maxMembers": 1 > }, > "child": { 137,146c86 < "title": "receivedInfluenceNotification", < "type": "action", < "name": "receivedInfluenceNotification", < "parameters": {}, < "output": { < "influence": "influence" < } < }, < { < "title": "faceEntity", --- > "title": "timer", 148c88 < "name": "faceEntity", --- > "name": "timer", 150c90 < "entity": "reactTarget" --- > "time": 1 154c94,137 < "title": "selector", --- > "type": "module", > "path": "/behaviors/npc/react.behavior", > "title": "/behaviors/npc/react.behavior", > "parameters": {} > } > ] > } > } > }, > { > "title": "inverter", > "type": "decorator", > "name": "inverter", > "parameters": {}, > "child": { > "title": "isFinalReaction", > "type": "action", > "name": "isFinalReaction", > "parameters": { > "reaction": "reaction" > } > } > }, > { > "title": "repeater", > "type": "decorator", > "name": "repeater", > "parameters": { > "maxLoops": -1, > "untilSuccess": true > }, > "child": { > "title": "inverter", > "type": "decorator", > "name": "inverter", > "parameters": {}, > "child": { > "title": "dynamic", > "type": "composite", > "name": "dynamic", > "parameters": {}, > "children": [ > { > "title": "sequence", 156c139 < "name": "selector", --- > "name": "sequence", 160c143,160 < "title": "sequence", --- > "title": "receivedInfluenceNotification", > "type": "action", > "name": "receivedInfluenceNotification", > "parameters": {}, > "output": { > "influence": "influence" > } > }, > { > "title": "faceEntity", > "type": "action", > "name": "faceEntity", > "parameters": { > "entity": "reactTarget" > } > }, > { > "title": "selector", 162c162 < "name": "sequence", --- > "name": "selector", 166,171c166,187 < "title": "isFinalReaction", < "type": "action", < "name": "isFinalReaction", < "parameters": { < "influence": "influence" < } --- > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": {}, > "children": [ > { > "title": "isFinalReaction", > "type": "action", > "name": "isFinalReaction", > "parameters": { > "influence": "influence" > } > }, > { > "title": "timer", > "type": "action", > "name": "timer", > "parameters": { > "time": 1.5 > } > } > ] 178c194 < "time": 1.5 --- > "time": 4 184c200 < "title": "timer", --- > "title": "resetReaction", 186,188c202,205 < "name": "timer", < "parameters": { < "time": 4 --- > "name": "resetReaction", > "parameters": {}, > "output": { > "reaction": "reaction" 189a207,212 > }, > { > "type": "module", > "path": "/behaviors/npc/react.behavior", > "title": "/behaviors/npc/react.behavior", > "parameters": {} 194,219c217,219 < "title": "resetReaction", < "type": "action", < "name": "resetReaction", < "parameters": {}, < "output": { < "reaction": "reaction" < } < }, < { < "type": "module", < "path": "/behaviors/npc/react.behavior", < "title": "/behaviors/npc/react.behavior", < "parameters": {} < } < ] < }, < { < "title": "sequence", < "type": "composite", < "name": "sequence", < "parameters": {}, < "children": [ < { < "title": "inverter", < "type": "decorator", < "name": "inverter", --- > "title": "sequence", > "type": "composite", > "name": "sequence", 221,226c221,260 < "child": { < "title": "isFinalReaction", < "type": "action", < "name": "isFinalReaction", < "parameters": { < "reaction": "reaction" --- > "children": [ > { > "title": "inverter", > "type": "decorator", > "name": "inverter", > "parameters": {}, > "child": { > "title": "isFinalReaction", > "type": "action", > "name": "isFinalReaction", > "parameters": { > "reaction": "reaction" > } > } > }, > { > "title": "entityInRange", > "type": "action", > "name": "entityInRange", > "parameters": { > "entity": "reactTarget", > "xRange": 5, > "position": "self" > } > }, > { > "title": "emote", > "type": "action", > "name": "emote", > "parameters": { > "emote": "blabbering" > } > }, > { > "title": "timer", > "type": "action", > "name": "timer", > "parameters": { > "time": 2 > } 228,254c262 < } < }, < { < "title": "entityInRange", < "type": "action", < "name": "entityInRange", < "parameters": { < "entity": "reactTarget", < "xRange": 5, < "position": "self" < } < }, < { < "title": "emote", < "type": "action", < "name": "emote", < "parameters": { < "emote": "blabbering" < } < }, < { < "title": "timer", < "type": "action", < "name": "timer", < "parameters": { < "time": 2 < } --- > ] 258c266 < ] --- > } 259a268,275 > ] > }, > { > "title": "dance", > "type": "action", > "name": "dance", > "parameters": { > "dance": null behaviors\npc\runaway.behavior 7,8c7 < "/scripts/actions/time.lua", < "/npcs/bmain.lua" --- > "/scripts/actions/time.lua" 92,114c91,96 < "title": "sequence", < "type": "composite", < "name": "sequence", < "parameters": {}, < "children": [ < { < "title": "timer", < "type": "action", < "name": "timer", < "parameters": { < "time": 5 < } < }, < { < "title": "sayToEntity", < "type": "action", < "name": "sayToEntity", < "parameters": { < "dialogType": "flee.dialog.safe", < "entity": "fleeTarget" < } < } < ] --- > "title": "timer", > "type": "action", > "name": "timer", > "parameters": { > "time": 5 > } behaviors\npc\sit.behavior 34,35c34,35 < "range": 50, < "orderBy": "nearest", --- > "range": 80, > "orderBy": "random", biomes\distributions.config 371c371 < "blockProbability" : 0.04 --- > "blockProbability" : 0.5 biomes\surface\forest.biome 8c8 < "extraSpawns" : [ "greentip", "blueback", "birdcritter", "squirrelcritter", "snail", "sporelingcritter", "owlcritter", "blipcritter" ], --- > "extraSpawns" : [ "greentip", "blueback", "birdcritter", "squirrelcritter", "snail", "sporelingcritter", "owlcritter", "blipcritter", "mousecritter" ], 15c15 < "extraSpawns" : [ "blueback", "redwing", "birdcritter", "squirrelcritter", "snail", "sporelingcritter", "owlcritter", "blipcritter" ], --- > "extraSpawns" : [ "blueback", "redwing", "birdcritter", "squirrelcritter", "snail", "sporelingcritter", "owlcritter", "blipcritter", "mousecritter" ], biomes\surface_detached\spring.biome 8c8 < "extraSpawns" : [ ], --- > "extraSpawns" : [ "snooglecritter", "birdcritter" ], 15c15 < "extraSpawns" : [ ], --- > "extraSpawns" : [ "snooglecritter", "birdcritter" ], dungeons\microdungeons\biomes\forest\ruinsmall1.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\garden\gardenbridge1.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\garden\gardenbridge2.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\garden\graveyard.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\garden\graveyardflowers.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\garden\mediumgardenflowers.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\garden\mediumgardenruin1.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\garden\mediumgardenruinplain.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\garden\mediumgardenruintall.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\garden\smallgardenflowers.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\garden\well1.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\garden\well2.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\garden\well3.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\shroom\shroomhouse1.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\shroom\shroomhouse2.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\shroom\shroomhouse3.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\shroom\shroomhouse4.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\shroom\shroomhouse5.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\shroom\shroomtemplate.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\spring\crittergroup3.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\spring\largepool1.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\spring\largepool2.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\spring\largepool3.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\spring\largepool4.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\spring\largepool5.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\spring\largepool6.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\spring\largepool7.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\spring\medpool1.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\spring\medpool10.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\spring\medpool2.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\spring\medpool3.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\spring\medpool4.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\spring\medpool5.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\spring\medpool6.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\spring\medpool7.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\spring\medpool8.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\spring\medpool9.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\spring\smallpool1.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\spring\smallpool10.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\spring\smallpool2.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\spring\smallpool3.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\spring\smallpool4.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\spring\smallpool5.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\spring\smallpool6.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\spring\smallpool7.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\spring\smallpool8.json [TMX file differences are left out for huge size.] dungeons\microdungeons\biomes\spring\smallpool9.json [TMX file differences are left out for huge size.] dungeons\microdungeons\subbiomes\ocean\oceankind1.json [TMX file differences are left out for huge size.] dungeons\microdungeons\subbiomes\ocean\oceankind10.json [TMX file differences are left out for huge size.] dungeons\microdungeons\subbiomes\ocean\oceankind2.json [TMX file differences are left out for huge size.] dungeons\microdungeons\subbiomes\ocean\oceankind3.json [TMX file differences are left out for huge size.] dungeons\microdungeons\subbiomes\ocean\oceankind4.json [TMX file differences are left out for huge size.] dungeons\microdungeons\subbiomes\ocean\oceankind5.json [TMX file differences are left out for huge size.] dungeons\microdungeons\subbiomes\ocean\oceankind6.json [TMX file differences are left out for huge size.] dungeons\microdungeons\subbiomes\ocean\oceankind7.json [TMX file differences are left out for huge size.] dungeons\microdungeons\subbiomes\ocean\oceankind8.json [TMX file differences are left out for huge size.] dungeons\microdungeons\subbiomes\ocean\oceankind9.json [TMX file differences are left out for huge size.] dungeons\microdungeons\template\templatemedium.json [TMX file differences are left out for huge size.] dungeons\microdungeons\template\templatesmall.json [TMX file differences are left out for huge size.] dungeons\missions\hylotlmissions\hylotlmission1.json [TMX file differences are left out for huge size.] dungeons\other\challengerooms\hylotlmission1.json [TMX file differences are left out for huge size.] humanoid\dances\posedance.dance 4a5 > "cyclic" : true, humanoid\dances\typing.dance 4a5 > "cyclic" : true, monsters\swimming\smallfish\fish.animation 14c14 < "cycle" : 0.8, --- > "cycle" : 0.25, npcs\default_reactions.config 10c10,12 < [1.0, "smile"] --- > [1.0, "smile"], > [1.0, "annoyed"], > [1.0, "punch"] 14a17,24 > ], > "music" : [ > [1.0, "posedance"] > ], > "musicFinished" : [ > [1.0, "posedance"], > [1.0, "smile"], > [1.0, "laugh"] npcs\follower.npctype 11,26c11 < "/npcs/main.lua", < "/scripts/pathing.lua", < "/npcs/timers.lua", < "/npcs/tenant.lua", < "/scripts/sensors.lua", < "/scripts/stateMachine.lua", < "/scripts/util.lua", < "/scripts/vec2.lua", < < "/npcs/returnHomeState.lua", < "/npcs/grumbleState.lua", < "/npcs/meleeAttackState.lua", < "/npcs/rangedAttackState.lua", < < "/npcs/followState.lua", < "/npcs/standingIdleState.lua" --- > "/npcs/bmain.lua" 30,37c15 < "attackerLimit" : 4, < "attackerLimitCooldown" : 3, < < "doorHitPoly" : [ [2, -1], [2, 1], [0, 1], [0, -1] ], < "idleTimeRange" : [0.1, 0.2], < "gapSensor" : [ [2.0, -4.5] ], < "gapFarSideSensors" : [ [3.0, -4.5], [4.0, -4.5], [5.0, -4.5], [6.0, -4.5], [7.0, -4.5], [8.0, -4.5] ], < "gapJumpHoldTime" : 0.4, --- > "behavior" : "/behaviors/npc/follower.behavior", 40,47d17 < "playerQueryRadius" : 15, < "follower.maxFollowRange" : 40, < < "attackDistance" : 20, < < "attackSayingPercent" : 25, < "returnSayingPercent" : 25, < 166d135 < { "name" : "humantier1broadsword" }, 168,541d136 < ] < } < ] ] < ], < "apex" : [ < [0, [ < { < "head" : [ { "name" : "apextier1head" } ], < "chest" : [ { "name" : "apextier1chest" } ], < "legs" : [ { "name" : "apextier1pants" } ], < "primary" : [ < { "name" : "generatedsword", "parameters" : { "definition" : "commonspear" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonaxe" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonhammer" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonbroadsword" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonshortsword" } } < ], < "sheathedprimary" : [ < { "name" : "generatedgun", "parameters" : { "definition" : "commonpistol" } }, < { "name" : "generatedgun", "parameters" : { "definition" : "commonmachinepistol" } } < ], < "alt" : [ < { "name" : "generatedshield", "parameters" : { "definition" : "tier1shield" } }, < { "name" : "generatedshield", "parameters" : { "definition" : "tier1woodshield" } } < ] < }, < { < "head" : [ { "name" : "apextier1head" } ], < "chest" : [ { "name" : "apextier1chest" } ], < "legs" : [ { "name" : "apextier1pants" } ], < "primary" : [ < { "name" : "generatedgun", "parameters" : { "definition" : "commonassaultrifle" } }, < { "name" : "generatedgun", "parameters" : { "definition" : "commonshotgun" } }, < { "name" : "generatedgun", "parameters" : { "definition" : "commonsniperrifle" } } < ], < "sheathedprimary" : [ < { "name" : "generatedsword", "parameters" : { "definition" : "commondagger" } } < ], < "alt" : [ < { "name" : "generatedshield", "parameters" : { "definition" : "tier1shield" } }, < { "name" : "generatedshield", "parameters" : { "definition" : "tier1woodshield" } } < ] < } < ] ], < [2, [ < { < "head" : [ { "name" : "apextier2head" } ], < "chest" : [ { "name" : "apextier2chest" } ], < "legs" : [ { "name" : "apextier2pants" } ], < "primary" : [ < { "name" : "generatedsword", "parameters" : { "definition" : "commonspear" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonaxe" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonhammer" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonbroadsword" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonshortsword" } } < ], < "sheathedprimary" : [ < { "name" : "generatedgun", "parameters" : { "definition" : "commonpistol" } }, < { "name" : "generatedgun", "parameters" : { "definition" : "commonmachinepistol" } } < ], < "alt" : [ < { "name" : "generatedshield", "parameters" : { "definition" : "tier1shield" } }, < { "name" : "generatedshield", "parameters" : { "definition" : "tier1woodshield" } } < ] < }, < { < "head" : [ { "name" : "apextier2head" } ], < "chest" : [ { "name" : "apextier2chest" } ], < "legs" : [ { "name" : "apextier2pants" } ], < "primary" : [ < { "name" : "generatedgun", "parameters" : { "definition" : "commonassaultrifle" } }, < { "name" : "generatedgun", "parameters" : { "definition" : "commonshotgun" } }, < { "name" : "generatedgun", "parameters" : { "definition" : "commonsniperrifle" } } < ], < "sheathedprimary" : [ < { "name" : "generatedsword", "parameters" : { "definition" : "commondagger" } } < ], < "alt" : [ < { "name" : "generatedshield", "parameters" : { "definition" : "tier1shield" } }, < { "name" : "generatedshield", "parameters" : { "definition" : "tier1woodshield" } } < ] < } < ] ], < [3, [ < { < "head" : [ { "name" : "apextier3head" } ], < "chest" : [ { "name" : "apextier3chest" } ], < "legs" : [ { "name" : "apextier3pants" } ], < "primary" : [ < { "name" : "generatedsword", "parameters" : { "definition" : "commonspear" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonaxe" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonhammer" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonbroadsword" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonshortsword" } } < ], < "sheathedprimary" : [ < { "name" : "generatedgun", "parameters" : { "definition" : "commonpistol" } }, < { "name" : "generatedgun", "parameters" : { "definition" : "commonmachinepistol" } } < ], < "alt" : [ < { "name" : "generatedshield", "parameters" : { "definition" : "tier1shield" } }, < { "name" : "generatedshield", "parameters" : { "definition" : "tier1woodshield" } } < ] < }, < { < "head" : [ { "name" : "apextier3head" } ], < "chest" : [ { "name" : "apextier3chest" } ], < "legs" : [ { "name" : "apextier3pants" } ], < "primary" : [ < { "name" : "generatedgun", "parameters" : { "definition" : "commonassaultrifle" } }, < { "name" : "generatedgun", "parameters" : { "definition" : "commonshotgun" } }, < { "name" : "generatedgun", "parameters" : { "definition" : "commonsniperrifle" } } < ], < "sheathedprimary" : [ < { "name" : "generatedsword", "parameters" : { "definition" : "commondagger" } } < ], < "alt" : [ < { "name" : "generatedshield", "parameters" : { "definition" : "tier1shield" } }, < { "name" : "generatedshield", "parameters" : { "definition" : "tier1woodshield" } } < ] < } < ] ] < ], < "avian" : [ < [0, [ < { < "head" : [ { "name" : "aviantier1head" } ], < "chest" : [ { "name" : "aviantier1chest" } ], < "legs" : [ { "name" : "aviantier1pants" } ], < "primary" : [ < { "name" : "generatedsword", "parameters" : { "definition" : "commonspear" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonaxe" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonhammer" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonbroadsword" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonshortsword" } } < ], < "sheathedprimary" : [ < { "name" : "generatedgun", "parameters" : { "definition" : "commonpistol" } }, < { "name" : "generatedgun", "parameters" : { "definition" : "commonmachinepistol" } } < ], < "alt" : [ < { "name" : "generatedshield", "parameters" : { "definition" : "tier1shield" } }, < { "name" : "generatedshield", "parameters" : { "definition" : "tier1woodshield" } } < ] < }, < { < "head" : [ { "name" : "aviantier1head" } ], < "chest" : [ { "name" : "aviantier1chest" } ], < "legs" : [ { "name" : "aviantier1pants" } ], < "primary" : [ < { "name" : "generatedgun", "parameters" : { "definition" : "commonassaultrifle" } }, < { "name" : "generatedgun", "parameters" : { "definition" : "commonsniperrifle" } }, < { "name" : "generatedgun", "parameters" : { "definition" : "commonshotgun" } } < ], < "sheathedprimary" : [ < { "name" : "generatedsword", "parameters" : { "definition" : "commondagger" } } < ], < "alt" : [ < { "name" : "generatedshield", "parameters" : { "definition" : "tier1shield" } }, < { "name" : "generatedshield", "parameters" : { "definition" : "tier1woodshield" } } < ] < } < ] ], < [2, [ < { < "head" : [ { "name" : "aviantier2head" } ], < "chest" : [ { "name" : "aviantier2chest" } ], < "legs" : [ { "name" : "aviantier2pants" } ], < "primary" : [ < { "name" : "generatedsword", "parameters" : { "definition" : "commonspear" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonaxe" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonhammer" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonbroadsword" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonshortsword" } } < ], < "sheathedprimary" : [ < { "name" : "generatedgun", "parameters" : { "definition" : "commonpistol" } }, < { "name" : "generatedgun", "parameters" : { "definition" : "commonmachinepistol" } } < ], < "alt" : [ < { "name" : "generatedshield", "parameters" : { "definition" : "tier1shield" } }, < { "name" : "generatedshield", "parameters" : { "definition" : "tier1woodshield" } } < ] < }, < { < "head" : [ { "name" : "aviantier2head" } ], < "chest" : [ { "name" : "aviantier2chest" } ], < "legs" : [ { "name" : "aviantier2pants" } ], < "primary" : [ < { "name" : "generatedgun", "parameters" : { "definition" : "commonassaultrifle" } }, < { "name" : "generatedgun", "parameters" : { "definition" : "commonsniperrifle" } }, < { "name" : "generatedgun", "parameters" : { "definition" : "commonshotgun" } } < ], < "sheathedprimary" : [ < { "name" : "generatedsword", "parameters" : { "definition" : "commondagger" } } < ], < "alt" : [ < { "name" : "generatedshield", "parameters" : { "definition" : "tier1shield" } }, < { "name" : "generatedshield", "parameters" : { "definition" : "tier1woodshield" } } < ] < } < ] ], < < [3, [ < { < "head" : [ { "name" : "aviantier3head" } ], < "chest" : [ { "name" : "aviantier3chest" } ], < "legs" : [ { "name" : "aviantier3pants" } ], < "primary" : [ < { "name" : "generatedsword", "parameters" : { "definition" : "commonspear" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonaxe" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonhammer" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonbroadsword" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonshortsword" } } < ], < "sheathedprimary" : [ < { "name" : "generatedgun", "parameters" : { "definition" : "commonpistol" } }, < { "name" : "generatedgun", "parameters" : { "definition" : "commonmachinepistol" } } < ], < "alt" : [ < { "name" : "generatedshield", "parameters" : { "definition" : "tier1shield" } }, < { "name" : "generatedshield", "parameters" : { "definition" : "tier1woodshield" } } < ] < }, < { < "head" : [ { "name" : "aviantier3head" } ], < "chest" : [ { "name" : "aviantier3chest" } ], < "legs" : [ { "name" : "aviantier3pants" } ], < "primary" : [ < { "name" : "generatedgun", "parameters" : { "definition" : "commonassaultrifle" } }, < { "name" : "generatedgun", "parameters" : { "definition" : "commonsniperrifle" } }, < { "name" : "generatedgun", "parameters" : { "definition" : "commonshotgun" } } < ], < "sheathedprimary" : [ < { "name" : "generatedsword", "parameters" : { "definition" : "commondagger" } } < ], < "alt" : [ < { "name" : "generatedshield", "parameters" : { "definition" : "tier1shield" } }, < { "name" : "generatedshield", "parameters" : { "definition" : "tier1woodshield" } } < ] < } < ] ] < ], < "floran" : [ < [0, [ < { < "head" : [ { "name" : "florantier1head" } ], < "chest" : [ { "name" : "florantier1chest" } ], < "legs" : [ { "name" : "florantier1pants" } ], < "primary" : [ < { "name" : "generatedsword", "parameters" : { "definition" : "commonspear" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonaxe" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonhammer" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonbroadsword" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonshortsword" } } < ], < "sheathedprimary" : [ < { "name" : "generatedgun", "parameters" : { "definition" : "floranneedler" } } < ], < "alt" : [ < { "name" : "generatedshield", "parameters" : { "definition" : "floranbasicshield" } } < ] < } < ] ], < [2, [ < { < "head" : [ { "name" : "florantier2head" } ], < "chest" : [ { "name" : "florantier2chest" } ], < "legs" : [ { "name" : "florantier2pants" } ], < "primary" : [ < { "name" : "generatedsword", "parameters" : { "definition" : "commonspear" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonaxe" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonhammer" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonbroadsword" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonshortsword" } } < ], < "sheathedprimary" : [ < { "name" : "generatedgun", "parameters" : { "definition" : "floranneedler" } } < ], < "alt" : [ < { "name" : "generatedshield", "parameters" : { "definition" : "floranbasicshield" } } < ] < } < ] ], < [3, [ < { < "head" : [ { "name" : "florantier3head" } ], < "chest" : [ { "name" : "florantier3chest" } ], < "legs" : [ { "name" : "florantier3pants" } ], < "primary" : [ < { "name" : "generatedsword", "parameters" : { "definition" : "commonspear" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonaxe" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonhammer" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonbroadsword" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonshortsword" } } < ], < "sheathedprimary" : [ < { "name" : "generatedgun", "parameters" : { "definition" : "floranneedler" } } < ], < "alt" : [ < { "name" : "generatedshield", "parameters" : { "definition" : "floranbasicshield" } } < ] < } < ] ] < ], < "human" : [ < [0, [ < { < "head" : [ { "name" : "humantier1head" } ], < "chest" : [ { "name" : "humantier1chest" } ], < "legs" : [ { "name" : "humantier1pants" } ], < "primary" : [ < { "name" : "generatedsword", "parameters" : { "definition" : "commonspear" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonaxe" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonhammer" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonbroadsword" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonshortsword" } } < ], < "sheathedprimary" : [ < { "name" : "generatedgun", "parameters" : { "definition" : "commonpistol" } }, < { "name" : "generatedgun", "parameters" : { "definition" : "commonmachinepistol" } } < ], < "alt" : [ < { "name" : "generatedshield", "parameters" : { "definition" : "tier1shield" } }, < { "name" : "generatedshield", "parameters" : { "definition" : "tier1woodshield" } } < ] < }, < { < "head" : [ { "name" : "humantier1head" } ], < "chest" : [ { "name" : "humantier1chest" } ], < "legs" : [ { "name" : "humantier1pants" } ], < "primary" : [ < { "name" : "generatedgun", "parameters" : { "definition" : "commonassaultrifle" } }, < { "name" : "generatedgun", "parameters" : { "definition" : "commonshotgun" } }, < { "name" : "generatedgun", "parameters" : { "definition" : "commonsniperrifle" } } < ], < "sheathedprimary" : [ < { "name" : "generatedsword", "parameters" : { "definition" : "commondagger" } } < ], < "alt" : [ < { "name" : "generatedshield", "parameters" : { "definition" : "tier1shield" } }, < { "name" : "generatedshield", "parameters" : { "definition" : "tier1woodshield" } } < ] < } < ] ], < [2, [ < { < "head" : [ { "name" : "humantier2head" } ], < "chest" : [ { "name" : "humantier2chest" } ], < "legs" : [ { "name" : "humantier2pants" } ], < "primary" : [ < { "name" : "generatedsword", "parameters" : { "definition" : "commonspear" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonaxe" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonhammer" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonbroadsword" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonshortsword" } } < ], < "sheathedprimary" : [ < { "name" : "generatedgun", "parameters" : { "definition" : "commonpistol" } }, < { "name" : "generatedgun", "parameters" : { "definition" : "commonmachinepistol" } } < ], < "alt" : [ < { "name" : "generatedshield", "parameters" : { "definition" : "tier1shield" } }, < { "name" : "generatedshield", "parameters" : { "definition" : "tier1woodshield" } } < ] < }, < { < "head" : [ { "name" : "humantier2head" } ], < "chest" : [ { "name" : "humantier2chest" } ], < "legs" : [ { "name" : "humantier2pants" } ], < "primary" : [ < { "name" : "generatedgun", "parameters" : { "definition" : "commonassaultrifle" } }, < { "name" : "generatedgun", "parameters" : { "definition" : "commonshotgun" } }, < { "name" : "generatedgun", "parameters" : { "definition" : "commonsniperrifle" } } 544,771c139 < { "name" : "generatedsword", "parameters" : { "definition" : "commondagger" } } < ], < "alt" : [ < { "name" : "generatedshield", "parameters" : { "definition" : "tier1shield" } }, < { "name" : "generatedshield", "parameters" : { "definition" : "tier1woodshield" } } < ] < } < ] ], < [3, [ < { < "head" : [ { "name" : "humantier3head" } ], < "chest" : [ { "name" : "humantier3chest" } ], < "legs" : [ { "name" : "humantier3pants" } ], < "primary" : [ < { "name" : "generatedsword", "parameters" : { "definition" : "commonspear" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonaxe" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonhammer" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonbroadsword" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonshortsword" } } < ], < "sheathedprimary" : [ < { "name" : "generatedgun", "parameters" : { "definition" : "commonpistol" } }, < { "name" : "generatedgun", "parameters" : { "definition" : "commonmachinepistol" } } < ], < "alt" : [ < { "name" : "generatedshield", "parameters" : { "definition" : "tier1shield" } }, < { "name" : "generatedshield", "parameters" : { "definition" : "tier1woodshield" } } < ] < }, < { < "head" : [ { "name" : "humantier3head" } ], < "chest" : [ { "name" : "humantier3chest" } ], < "legs" : [ { "name" : "humantier3pants" } ], < "primary" : [ < { "name" : "generatedgun", "parameters" : { "definition" : "commonassaultrifle" } }, < { "name" : "generatedgun", "parameters" : { "definition" : "commonshotgun" } }, < { "name" : "generatedgun", "parameters" : { "definition" : "commonsniperrifle" } } < ], < "sheathedprimary" : [ < { "name" : "generatedsword", "parameters" : { "definition" : "commondagger" } } < ], < "alt" : [ < { "name" : "generatedshield", "parameters" : { "definition" : "tier1shield" } }, < { "name" : "generatedshield", "parameters" : { "definition" : "tier1woodshield" } } < ] < } < ] ] < ], < "glitch" : [ < [0, [ < { < "head" : [ { "name" : "glitchtier1head" } ], < "chest" : [ { "name" : "glitchtier1chest" } ], < "legs" : [ { "name" : "glitchtier1pants" } ], < "primary" : [ < { "name" : "generatedsword", "parameters" : { "definition" : "commonspear" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonaxe" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonhammer" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonbroadsword" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonshortsword" } } < ], < "sheathedprimary" : [ < { "name" : "generatedgun", "parameters" : { "definition" : "crossbowwood" } } < ], < "alt" : [ < { "name" : "generatedshield", "parameters" : { "definition" : "glitchbasicshield" } } < ] < } < ] ], < [2, [ < { < "head" : [ { "name" : "glitchtier2head" } ], < "chest" : [ { "name" : "glitchtier2chest" } ], < "legs" : [ { "name" : "glitchtier2pants" } ], < "primary" : [ < { "name" : "generatedsword", "parameters" : { "definition" : "commonspear" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonaxe" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonhammer" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonbroadsword" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonshortsword" } } < ], < "sheathedprimary" : [ < { "name" : "generatedgun", "parameters" : { "definition" : "crossbowwood" } } < ], < "alt" : [ < { "name" : "generatedshield", "parameters" : { "definition" : "glitchbasicshield" } } < ] < } < ] ], < < [3, [ < { < "head" : [ { "name" : "glitchtier3head" } ], < "chest" : [ { "name" : "glitchtier3chest" } ], < "legs" : [ { "name" : "glitchtier3pants" } ], < "primary" : [ < { "name" : "generatedsword", "parameters" : { "definition" : "commonspear" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonaxe" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonhammer" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonbroadsword" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonshortsword" } } < ], < "sheathedprimary" : [ < { "name" : "generatedgun", "parameters" : { "definition" : "crossbowwood" } } < ], < "alt" : [ < { "name" : "generatedshield", "parameters" : { "definition" : "glitchbasicshield" } } < ] < } < ] ] < ], < "hylotl" : [ < [0, [ < { < "head" : [ { "name" : "hylotltier1head" } ], < "chest" : [ { "name" : "hylotltier1chest" } ], < "legs" : [ { "name" : "hylotltier1pants" } ], < "primary" : [ < { "name" : "generatedsword", "parameters" : { "definition" : "commonspear" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonaxe" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonhammer" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonbroadsword" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonshortsword" } } < ], < "sheathedprimary" : [ < { "name" : "generatedgun", "parameters" : { "definition" : "commonpistol" } }, < { "name" : "generatedgun", "parameters" : { "definition" : "commonmachinepistol" } } < ], < "alt" : [ < { "name" : "generatedshield", "parameters" : { "definition" : "tier1shield" } }, < { "name" : "generatedshield", "parameters" : { "definition" : "tier1woodshield" } } < ] < }, < { < "head" : [ { "name" : "hylotltier1head" } ], < "chest" : [ { "name" : "hylotltier1chest" } ], < "legs" : [ { "name" : "hylotltier1pants" } ], < "primary" : [ < { "name" : "generatedgun", "parameters" : { "definition" : "commonassaultrifle" } }, < { "name" : "generatedgun", "parameters" : { "definition" : "commonshotgun" } }, < { "name" : "generatedgun", "parameters" : { "definition" : "commonsniperrifle" } } < ], < "sheathedprimary" : [ < { "name" : "generatedsword", "parameters" : { "definition" : "commondagger" } } < ], < "alt" : [ < { "name" : "generatedshield", "parameters" : { "definition" : "tier1shield" } }, < { "name" : "generatedshield", "parameters" : { "definition" : "tier1woodshield" } } < ] < } < ] ], < < [2, [ < { < "head" : [ { "name" : "hylotltier2head" } ], < "chest" : [ { "name" : "hylotltier2chest" } ], < "legs" : [ { "name" : "hylotltier2pants" } ], < "primary" : [ < { "name" : "generatedsword", "parameters" : { "definition" : "commonspear" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonaxe" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonhammer" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonbroadsword" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonshortsword" } } < ], < "sheathedprimary" : [ < { "name" : "generatedgun", "parameters" : { "definition" : "commonpistol" } }, < { "name" : "generatedgun", "parameters" : { "definition" : "commonmachinepistol" } } < ], < "alt" : [ < { "name" : "generatedshield", "parameters" : { "definition" : "tier1shield" } }, < { "name" : "generatedshield", "parameters" : { "definition" : "tier1woodshield" } } < ] < }, < { < "head" : [ { "name" : "hylotltier2head" } ], < "chest" : [ { "name" : "hylotltier2chest" } ], < "legs" : [ { "name" : "hylotltier2pants" } ], < "primary" : [ < { "name" : "generatedgun", "parameters" : { "definition" : "commonassaultrifle" } }, < { "name" : "generatedgun", "parameters" : { "definition" : "commonshotgun" } }, < { "name" : "generatedgun", "parameters" : { "definition" : "commonsniperrifle" } } < ], < "sheathedprimary" : [ < { "name" : "generatedsword", "parameters" : { "definition" : "commondagger" } } < ], < "alt" : [ < { "name" : "generatedshield", "parameters" : { "definition" : "tier1shield" } }, < { "name" : "generatedshield", "parameters" : { "definition" : "tier1woodshield" } } < ] < } < ] ], < < [3, [ < { < "head" : [ { "name" : "hylotltier3head" } ], < "chest" : [ { "name" : "hylotltier3chest" } ], < "legs" : [ { "name" : "hylotltier3pants" } ], < "primary" : [ < { "name" : "generatedsword", "parameters" : { "definition" : "commonspear" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonaxe" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonhammer" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonbroadsword" } }, < { "name" : "generatedsword", "parameters" : { "definition" : "commonshortsword" } } < ], < "sheathedprimary" : [ < { "name" : "generatedgun", "parameters" : { "definition" : "commonpistol" } }, < { "name" : "generatedgun", "parameters" : { "definition" : "commonmachinepistol" } } < ], < "alt" : [ < { "name" : "generatedshield", "parameters" : { "definition" : "tier1shield" } }, < { "name" : "generatedshield", "parameters" : { "definition" : "tier1woodshield" } } < ] < }, < { < "head" : [ { "name" : "hylotltier3head" } ], < "chest" : [ { "name" : "hylotltier3chest" } ], < "legs" : [ { "name" : "hylotltier3pants" } ], < "primary" : [ < { "name" : "generatedgun", "parameters" : { "definition" : "commonassaultrifle" } }, < { "name" : "generatedgun", "parameters" : { "definition" : "commonshotgun" } }, < { "name" : "generatedgun", "parameters" : { "definition" : "commonsniperrifle" } } < ], < "sheathedprimary" : [ < { "name" : "generatedsword", "parameters" : { "definition" : "commondagger" } } < ], < "alt" : [ < { "name" : "generatedshield", "parameters" : { "definition" : "tier1shield" } }, < { "name" : "generatedshield", "parameters" : { "definition" : "tier1woodshield" } } --- > { "name" : "humantier1broadsword" } npcs\merchantpools.config 33c33 < { "item" : { "name" : "mushroom" } }, --- > { "item" : { "name" : "shroom" } }, npcs\mission\florangladiator.npctype 17,40c17,25 < "attackerLimit" : 8, < "attackerLimitCooldown" : 3, < "noticePlayersRadius" : 30, < < "guard" : { < "patrolDistance" : 5, < "noticeDistance" : 25, < "hailDistance" : -1, < "stopDistance" : -1, < "attackDistance" : 25, < "changeDirectionTimeRange" : [5, 10], < < "attackSayingPercent" : 100, < < "dialog" : { < "attack" : { < "default" : [ "Intruder!" < ], < "floran" : { < "default" : [ < "RIP AND TEAR!", < "RIP AND TEAR!" < ] < } --- > "dialog" : { > "attack" : { > "default" : [ "Intruder!" > ], > "floran" : { > "default" : [ > "RIP AND TEAR!", > "RIP AND TEAR!" > ] 41a27,37 > }, > "reattack" : { > "default" : [ > "You again!" > ] > }, > "killedTarget" : { > "default" : [ "get rekt" ] > }, > "lostTarget" : { > "default" : [ "I will get you one day" ] 43,52d38 < }, < < "returnToPost" : { < "moveTime" : 20, < "minDistance" : 2 < }, < < "meleeAttack" : { < "swingDistance" : 4, < "runThreshold" : 0 npcs\mission\floranpredator.npctype 17,19d16 < "attackerLimit" : 8, < "attackerLimitCooldown" : 3, < "noticePlayersRadius" : 30, 21,62c18,48 < "guard" : { < "patrolDistance" : 5, < "noticeDistance" : 25, < "hailDistance" : -1, < "stopDistance" : -1, < "attackDistance" : 25, < "changeDirectionTimeRange" : [5, 10], < < "attackSayingPercent" : 100, < < "dialog" : { < "attack" : { < "default" : [ "Intruder!" < ], < "floran" : { < "default" : [ < "I sssee you, hunter!", < "Attack!", < "Rival hunter sssighted!", < "Ssstrike them down!", < "Take out the competitionsss!", < "I won't be beaten in the huntsss!", < "You can't run from me, huntersss!", < "The hunt isss on!", < "No waysss out!", < "Let the gamesss begin!", < "Time to give chasssse!", < "Come out and play, huntersss!", < "You aren't going to ssstop me!", < "I have enemy huntersss in my sights!", < "You won't beat me in the huntsss!", < "Rivalsss! Ssstrangers!", < "You can't ssstop me winning the hunt!", < "Nuru can't beat me this time, and neither can you!", < "Time to ssslay the competition!", < "At leassst you aren't Nuru!", < "You aren't the bessst hunter, I am!", < "You'll perish in the tunnelsss, ssstranger!", < "I won't let an outsider win!", < "Victory won't go to you, outsider!" < ] < } --- > "dialog" : { > "attack" : { > "default" : [ "Intruder!" > ], > "floran" : { > "default" : [ > "I sssee you, hunter!", > "Attack!", > "Rival hunter sssighted!", > "Ssstrike them down!", > "Take out the competitionsss!", > "I won't be beaten in the huntsss!", > "You can't run from me, huntersss!", > "The hunt isss on!", > "No waysss out!", > "Let the gamesss begin!", > "Time to give chasssse!", > "Come out and play, huntersss!", > "You aren't going to ssstop me!", > "I have enemy huntersss in my sights!", > "You won't beat me in the huntsss!", > "Rivalsss! Ssstrangers!", > "You can't ssstop me winning the hunt!", > "Nuru can't beat me this time, and neither can you!", > "Time to ssslay the competition!", > "At leassst you aren't Nuru!", > "You aren't the bessst hunter, I am!", > "You'll perish in the tunnelsss, ssstranger!", > "I won't let an outsider win!", > "Victory won't go to you, outsider!" > ] 63a50,60 > }, > "reattack" : { > "default" : [ > "You again!" > ] > }, > "killedTarget" : { > "default" : [ "get rekt" ] > }, > "lostTarget" : { > "default" : [ "I will get you one day" ] 65,74d61 < }, < < "returnToPost" : { < "moveTime" : 20, < "minDistance" : 2 < }, < < "meleeAttack" : { < "swingDistance" : 4, < "runThreshold" : 0 npcs\mission\floransniper.npctype 16,19d15 < < "attackerLimit" : 8, < "attackerLimitCooldown" : 3, < "noticePlayersRadius" : 50, 21,46c17,31 < "guard" : { < "patrolDistance" : 5, < "noticeDistance" : 50, < "hailDistance" : -1, < "stopDistance" : -1, < "attackDistance" : 50, < "changeDirectionTimeRange" : [5, 10], < < "attackSayingPercent" : 60, < < "dialog" : { < "attack" : { < "default" : [ "Intruder!" < ], < "floran" : { < "default" : [ < "I'll ssshoot you down!", < "You can't escape my sssights!", < "I'll fill you with holesss, outsider!", < "You aren't fassst enough to outrun my ssshots!", < "You can't hide from me!", < "I have the vantage point, outsssider!", < "I have the better aim, outsssider!", < "You can't ssssurvive in these tunnelsss! You're an outsider!" < ] < } --- > "dialog" : { > "attack" : { > "default" : [ "Intruder!" > ], > "floran" : { > "default" : [ > "I'll ssshoot you down!", > "You can't escape my sssights!", > "I'll fill you with holesss, outsider!", > "You aren't fassst enough to outrun my ssshots!", > "You can't hide from me!", > "I have the vantage point, outsssider!", > "I have the better aim, outsssider!", > "You can't ssssurvive in these tunnelsss! You're an outsider!" > ] 47a33,43 > }, > "reattack" : { > "default" : [ > "You again!" > ] > }, > "killedTarget" : { > "default" : [ "get rekt" ] > }, > "lostTarget" : { > "default" : [ "I will get you one day" ] 49,58d44 < }, < < "returnToPost" : { < "moveTime" : 20, < "minDistance" : 2 < }, < < "meleeAttack" : { < "swingDistance" : 4, < "runThreshold" : 0 npcs\outpost\outpostcivilian.npctype 10,24c10 < "/npcs/main.lua", < "/scripts/pathing.lua", < "/npcs/timers.lua", < "/scripts/sensors.lua", < "/scripts/stateMachine.lua", < "/scripts/util.lua", < "/scripts/vec2.lua", < < "/npcs/chatState.lua", < "/npcs/converseState.lua", < "/npcs/fleeState.lua", < "/npcs/sitState.lua", < "/npcs/sleepState.lua", < "/npcs/standingIdleState.lua", < "/npcs/wanderState.lua" --- > "/npcs/bmain.lua" 27a14,15 > "behavior" : "/behaviors/npc/villager.behavior", > objects\arttrophies\paintingmonalisa\paintingmonalisa.object 33c33,34 < "npcPlay" : { --- > "scripts" : [ "/scripts/npcToyObject.lua"], > "npcToy" : { 36c37,38 < ] --- > ], > "randomStandXRange" : [-2.5, 2.5] objects\generic\arcademachine\arcademachine.object 32c32,33 < "npcPlay" : { --- > "scripts" : [ "/scripts/npcToyObject.lua"], > "npcToy" : { 38,39c39,41 < "standPositionLeft" : [-0.5, 3.0], < "standPositionRight" : [2.0, 3.0] --- > "preciseStandPositionLeft" : [-0.5, 3.0], > "preciseStandPositionRight" : [2.0, 3.0], > "maxNpcs" : 1 objects\generic\woodchair\woodchair.object 6c6 < "shortdescription" : "Wooden Chair", --- > "shortdescription" : "Wooden Padded Chair", objects\human\jukebox\jukebox.object 54c54,58 < "scripts" : [ "/objects/wired/light/light.lua" ], --- > "scripts" : [ > "/objects/wired/light/light.lua", > "/scripts/npcToyObject.lua", > "/objects/human/jukebox/jukebox.lua" > ], 57a62,70 > > "npcToy" : { > "influence" : [ > "music", > "music", > "musicFinished" > ], > "randomStandXRange" : [-8, 8] > }, scripts\pathing.lua 77c77 < self:keepDropping(dt, options) --- > self:keepDropping(dt) 123c123 < if world.magnitude(self.targetPosition, self.pathTarget) > 0 then --- > if world.magnitude(self.targetPosition, self.pathTarget) > 0 and mcontroller.onGround() then 209c209 < function Pather:keepDropping() --- > function Pather:keepDropping(dt) scripts\actions\entities.lua 23c23,26 < BData:setPosition(output.position, world.entityPosition(entityId)) --- > local pos = world.entityPosition(entityId) > BData:setPosition(output.position, pos) > BData:setNumber(output.x, pos[1]) > BData:setNumber(output.y, pos[2]) 108c111 < orderby = args.orderBy, --- > order = args.orderBy, 178c181,185 < local loungables = world.loungeableQuery(position, args.range, { orientation = args.orientation }) --- > local queryArgs = { > order = args.orderBy, > withoutEntityId = BData:getEntity(args.withoutEntity) > } > local loungables = world.loungeableQuery(position, args.range, { orientation = args.orientation }, queryArgs) 204c211 < local entityId = BData:getEntity(entity) --- > local entityId = BData:getEntity(args.entity) 229c236 < local objects = world.entityQuery(position, args.range, { includedTypes = {"object"}, orderby = args.orderBy }) --- > local objects = world.entityQuery(position, args.range, { includedTypes = {"object"}, order = args.orderBy }) 336c343 < local monsters = world.entityQuery(position, args.range, { includedTypes = {"monster"}, orderby = args.orderBy }) --- > local monsters = world.entityQuery(position, args.range, { includedTypes = {"monster"}, order = args.orderBy }) scripts\actions\reaction.lua 121c121 < function objectInfluenceSequence(args, output) --- > function npcToyInfluence(args, output) 129c129 < local influences = world.callScriptedEntity(target, "entity.configParameter", "npcPlay.influence") --- > local influences = world.callScriptedEntity(target, "npcToy.getInfluence") 137a138,151 > function npcToyIsAvailable(args, output) > args = parseArgs(args, { > target = "" > }) > > local target = BData:getEntity(args.target) > if target == nil then return false end > if world.callScriptedEntity(target, "npcToy.isAvailable") then > return true > end > return false > end > > -- param target 139c153 < function objectPlayStandPosition(args, output) --- > function npcToyPreciseStandPosition(args, output) 147,152c161,168 < local objectDirection = world.callScriptedEntity(target, "entity.direction") < local standPosition < if objectDirection == -1 then < standPosition = world.callScriptedEntity(target, "entity.configParameter", "npcPlay.standPositionLeft") < else < standPosition = world.callScriptedEntity(target, "entity.configParameter", "npcPlay.standPositionRight") --- > local standPosition = world.callScriptedEntity(target, "npcToy.getPreciseStandPosition") > > if standPosition == nil then return false end > local position = world.entityPosition(target) > standPosition[1] = standPosition[1] + position[1] > standPosition[2] = standPosition[2] + position[2] > if output.position then > BData:setPosition(output.position, standPosition) 153a170,183 > return true > end > > -- param target > -- output position > function npcToyImpreciseStandPosition(args, output) > args = parseArgs(args, { > target = "" > }) > > local target = BData:getEntity(args.target) > if target == nil then return false end > > local standPosition = world.callScriptedEntity(target, "npcToy.getImpreciseStandPosition") 161a192,218 > return true > end > > -- param entity > function npcToyPlay(args, output) > args = parseArgs(args, { > entity = "" > }) > > local target = BData:getEntity(args.entity) > if target == nil then return false end > if not world.callScriptedEntity(target, "npcToy.isAvailable") then > return false > end > world.callScriptedEntity(target, "npcToy.onNpcPlay", entity.id()) > return true > end > > -- param entity > function npcToyEndPlay(args, output) > args = parseArgs(args, { > entity = "" > }) > > local target = BData:getEntity(args.entity) > if target == nil then return false end > world.callScriptedEntity(target, "npcToy.onNpcPlayEnd", entity.id()) scripts\behavior\decorator.lua 1a2 > require "/scripts/actions/time.lua" 137,138c138,139 < if result == true or (onFail and result == false) then < self.time = world.time() + self.cooldown --- > if result == true or (self.onFail and result == false) then > self.time = world.time() + timeRange(self.cooldown) 195a197 > goal = args.goal, 199d200 < goal = args.goal, 249c250 < self.group.goal = BData:getEntity(self.group.goal) --- > self.group.goal = BData:getEntity(self.goal) 251c252 < self.group.goal = BData:getPosition(self.group.goal) --- > self.group.goal = BData:getPosition(self.goal) 253c254 < self.group.goal = BData:getList(self.group.goal) --- > self.group.goal = BData:getList(self.goal) terrain\surface\remixedmildsurface.terrain 25c25 < "freq" : 0.0065, --- > "freq" : 0.004, 27c27 < "bias" : 1, --- > "bias" : 2.0, 59c59 < "xOctaves" : 1, --- > "xOctaves" : 2, 63c63 < "yOctaves" : 2, --- > "yOctaves" : 1, 71c71,83 < "type" : "flatSurface", --- > //slower, lower hills > "type" : "displacement", > "xType" : "perlin", > "xOctaves" : 2, > "xFreq" : 0.01, > "xAmp" : 0, > "yType" : "perlin", > "yOctaves" : 1, > "yFreq" : 0.005, > "yAmp" : 20, > > "source" : { > "type" : "flatSurface", 73c85,86 < "adjustment" : 0 --- > "adjustment" : 0 > } terrain\surface\remixedmountainssurface.terrain 25c25 < "freq" : 0.007, --- > "freq" : 0.0065, terrain\surface\remixedsurface.terrain 25c25 < "freq" : 0.0065, --- > "freq" : 0.0045, 27c27 < "bias" : 2.5, --- > "bias" : 0.5, 65,66c65,66 < "yAmp" : 60, < "yClamp" : [-60, 10], --- > "yAmp" : 50, > "yClamp" : [-60, 15], 71c71,83 < "type" : "flatSurface", --- > //slower, lower hills > "type" : "displacement", > "xType" : "perlin", > "xOctaves" : 2, > "xFreq" : 0.01, > "xAmp" : 0, > "yType" : "perlin", > "yOctaves" : 1, > "yFreq" : 0.005, > "yAmp" : 20, > > "source" : { > "type" : "flatSurface", 73c85,86 < "adjustment" : 0 --- > "adjustment" : 0 > }