FILES ----- codex.config help.config interface.config metamaterials.config player.config universe_server.config behaviors\monsters\boss\cultistboss\sphereattack.behavior behaviors\monsters\boss\kluexboss\plasmaattack.behavior behaviors\monsters\modular\targeting.behavior behaviors\monsters\modular\movement\flyapproach.behavior behaviors\monsters\modular\movement\flywander.behavior behaviors\npc\combat.behavior behaviors\npc\combat\melee.behavior behaviors\npc\combat\meleeleap.behavior behaviors\npc\combat\ranged.behavior behaviors\npc\overrides\override-follow.behavior biomes\surface\toxic.biome boss\cultistboss\cultistbossend.monstertype boss\eyeboss\eyeboss.animation boss\eyeboss\eyeboss.monstertype codex\floran\floranhistory3.codex codex\floran\floranhistory5.codex codex\floran\floranhistory6.codex codex\floran\floranhistory7.codex [NEW] codex\other\finalpostcard.codex [NEW] codex\other\finalpostcard.png dialog\converse.config dialog\crewmember.config dungeons\missions\avianmissions\avianmission1.json dungeons\missions\floranmissions\floranmission1.dungeon dungeons\missions\hylotlmissions\hylotlmission1.json dungeons\missions\lunarbase\lunarbase.dungeon dungeons\other\challengerooms\collapse.json interface\chests\slots17to24.png interface\chests\slots1to16.png interface\chests\slots25to32.png interface\chests\slots33to40.png interface\chests\slots41to48.png interface\chests\slots49to56.png interface\chests\slots57to64.png interface\games\fossilgame\tools.lua [NEW] interface\itemdescriptions\fossil.itemdescription [NEW] interface\itemdescriptions\mm.itemdescription [NEW] interface\itemdescriptions\vehicle.itemdescription interface\modsmenu\body.png [NEW] interface\modsmenu\copy.png interface\modsmenu\footer.png interface\modsmenu\header.png [NEW] interface\modsmenu\iconmodmanager.png [NEW] interface\modsmenu\informationbg.png interface\modsmenu\modbackground.png [NEW] interface\modsmenu\modicon.png interface\modsmenu\modselected.png [NEW] interface\modsmenu\modselectedicon.png interface\modsmenu\modsmenu.config [NEW] interface\modsmenu\new.png interface\modsmenu\scrollbg.png [NEW] interface\modsmenu\scroller.png [NEW] interface\modsmenu\shine.png [NEW] interface\modsmenu\view.png [NEW] interface\modsmenu\workshopbutton.png [NEW] interface\modsmenu\x.png [NEW] interface\modsmenu\xpress.png interface\optionsmenu\optionsmenu.config interface\title\mods.png interface\title\modsover.png [NEW] interface\tooltips\fossil.tooltip [NEW] interface\tooltips\mm.tooltip [NEW] interface\tooltips\vehicle.tooltip interface\warping\icon.png interface\warping\outpostteleporter.config interface\windowconfig\keybindingsmenu.config interface\windowconfig\portraitconfirmation.config items\active\grapplinghooks\grapplinghook.lua items\active\unsorted\filledcapturepod\filledcapturepod.lua [NEW] items\active\unsorted\superrewardbag\superrewardbag.activeitem [NEW] items\active\unsorted\superrewardbag\superrewardbag.animation [NEW] items\active\unsorted\superrewardbag\superrewardbag.lua [NEW] items\active\unsorted\superrewardbag\superrewardbag.png [NEW] items\active\unsorted\superrewardbag\superrewardbagicon.png [NEW] items\active\vehiclecontroller\boat.png items\active\vehiclecontroller\boatcontrollergreen.activeitem [NEW] items\active\vehiclecontroller\green.png items\active\vehiclecontroller\hoverbikecontrollergreen.activeitem items\active\vehiclecontroller\hoverbikecontrollerkhaki.activeitem items\active\vehiclecontroller\hoverbikecontrollerred.activeitem [NEW] items\active\vehiclecontroller\khaki.png [NEW] items\active\vehiclecontroller\red.png items\active\weapons\melee\abilities\generic\blinkslash\blinkslash.lua items\active\weapons\melee\abilities\generic\blinkslash\blinkslash.weaponability items\active\weapons\other\tentaclegun\tentaclegun.lua items\active\weapons\ranged\gunfire.lua items\armors\apex\apex-tier3\mask.png items\armors\apex\apex-tier6separator\mask.png items\armors\avian\avian-tier2\mask.png items\armors\avian\avian-tier3\mask.png items\armors\avian\avian-tier5accelerator\mask.png items\armors\avian\avian-tier5manipulator\mask.png [NEW] items\armors\backerhats\doghat\doghat.head [NEW] items\armors\backerhats\doghat\head.png [NEW] items\armors\backerhats\doghat\headicon.png [NEW] items\armors\backerhats\doghat\mask.png items\armors\backerhats\phoenixhat\mask.png items\armors\biome\Bioluminescence\lighthelm\mask.png items\armors\biome\colorful\crayonblueback\back.png items\armors\biome\colorful\crayongreenback\back.png items\armors\biome\colorful\crayonorangeback\back.png items\armors\biome\colorful\crayonpurpleback\back.png items\armors\biome\colorful\crayonredback\back.png items\armors\biome\colorful\crayonyellowback\back.png items\armors\biome\ice\cyclopsyeti\mask.png items\armors\biome\scorchedcity\deadbeathornmask\mask.png items\armors\biome\scorchedcity\deadbeathorns\mask.png items\armors\biome\scorchedcity\deadbeatmask\mask.png items\armors\biome\scorchedcity\deadbeatnerd\mask.png items\armors\contest\carrothat\mask.png items\armors\contest\faceleech\mask.png items\armors\contest\pinkeyeparasite\mask.png items\armors\decorative\costumes\miner\mask.png items\armors\decorative\costumes\mrclaus\mask.png items\armors\decorative\costumes\mutantminer\head.png items\armors\decorative\costumes\predatory\mask.png items\armors\decorative\costumes\wedding2\mask.png items\armors\decorative\hats\divingmask\mask.png items\armors\decorative\hats\tiger\mask.png items\armors\floran\floran-tier5separator\mask.png items\armors\novakid\nova-tier3\mask.png items\armors\other\explorer\chestf.png items\armors\other\explorer\fsleeve.png items\armors\other\mercenary\chestf.png items\armors\other\mercenary\mask.png items\armors\other\tracker\chestf.png items\armors\other\tracker\fsleeve.png items\armors\other\tracker\icons.png items\armors\other\tracker\mask.png items\armors\other\tracker\pants.png items\fossils\humanoid\avioscalefossil1.item items\fossils\humanoid\glitchfossil1.item items\fossils\humanoid\humanfossil1.item items\fossils\large\ophidauntfossil\ophidauntfossil4.item items\fossils\small\fernfossil.item items\fossils\small\fishfossil.item items\fossils\small\mysteriousalienfossil.item items\materials\aztectech.matitem items\tools\painttool.painttool items\tools\wiretool.wiretool items\tools\inspectiontool\inspectionmode.inspectiontool items\tools\inspectiontool\scanmode.inspectiontool items\tools\miningtools\beamaxe.beamaxe items\tools\miningtools\beamaxeX.beamaxe monsters\monster.lua monsters\boss\apeboss\apeboss.monstertype monsters\boss\cultistboss\cultistboss.monstertype monsters\boss\dragonboss\dragonboss.monstertype monsters\boss\kluexboss\kluexboss.monstertype monsters\boss\kluexbossstatue\kluexbossstatue.monstertype monsters\boss\spiderboss\spiderboss.monstertype monsters\crawlers\tentaclecrawler\tentaclecrawler.monstertype monsters\crawlers\tentaclecrawler\tentaclecrawler.png monsters\farming\electricfluffalo\body.png monsters\farming\firefluffalo\body.png monsters\farming\poisonfluffalo\body.png monsters\farming\robothen\body.png monsters\flyers\agrobat\agrobat.monstertype monsters\flyers\batong\batong.monstertype monsters\flyers\bobfae\bobfae.monstertype monsters\flyers\monopus\monopus.monstertype monsters\flyers\paratail\paratail.monstertype monsters\flyers\pteropod\pteropod.monstertype monsters\flyers\scandroid\scandroid.monstertype monsters\flyers\tentaclebomb\tentaclebomb.monstertype monsters\flyers\tentaclegnat\tentaclegnat.monstertype monsters\flyers\tentaclespawner\tentaclespawner.monstertype monsters\generated\flying\largeflying\largeflying.monstertype monsters\generated\flying\smallflying\smallflying.monstertype monsters\ghosts\tentacleghost\tentacleghost.monstertype monsters\walkers\ringram\ringram.monstertype monsters\walkers\tentacleclam\tentacleclam.monstertype monsters\walkers\trictus\trictus.animation monsters\walkers\trictus\trictus.monstertype npcs\base.npctype npcs\crew\crewmember.npctype npcs\story\baron.npctype npcs\story\koichi.npctype npcs\story\lana.npctype npcs\story\lanafight.npctype npcs\story\nuru.npctype npcs\story\nurufight.npctype npcs\story\tonauac.npctype objects\ancient\ancientbigchest\ancientbigchest.object objects\ancient\ancientchest\ancientchest.object objects\avian\chestavian\chestavian1.object objects\avian\chestavian2\chestavian2.object objects\avian\chestmedavian\chestmedavian1.object objects\avian\chestmedavian2\chestmedavian2.object objects\biome\alien\alienchest\alienchest.object objects\biome\alpine\stonechest\stonechest.object objects\biome\bioluminescence\glowchest\glowchest.object objects\biome\bone\bonechest\bonechest.object objects\biome\cell\cellchest\cellchest.object objects\biome\colourful\rainbowchest\rainbowchest.object objects\biome\crystalline\crystalchest\crystalchest.object objects\biome\dark\shadowchest\shadowchest.object objects\biome\desert\sandstonechest\sandstonechest.object objects\biome\eyepatch\eyechest\eyechest.object objects\biome\flesh\fleshchest\fleshchest.object objects\biome\geologicalsample\corefragmentsample\corefragmentsample.object objects\biome\geologicalsample\geodebluesample\geodebluesample.object objects\biome\geologicalsample\geodegreensample\geodegreensample.object objects\biome\geologicalsample\geodeorangesample\geodeorangesample.object objects\biome\geologicalsample\geodepurplesample\geodepurplesample.object objects\biome\geologicalsample\geoderedsample\geoderedsample.object objects\biome\geologicalsample\geodeyellowsample\geodeyellowsample.object [NEW] objects\biome\geologicalsample\silversample\icon.png [NEW] objects\biome\geologicalsample\silversample\silversample.frames [NEW] objects\biome\geologicalsample\silversample\silversample.object [NEW] objects\biome\geologicalsample\silversample\silversample.png objects\biome\giantflower\giantflowerchest\giantflowerchest.object objects\biome\hive\hivechest\hivechest.object objects\biome\ice\icechest\icechest.object objects\biome\icesphere\icespherechest\icespherechest.object objects\biome\jungle\junglechest\junglechest.object objects\biome\mushroom\shroomchest\shroomchest.object objects\biome\oasis\reedchest\reedchest.object objects\biome\rust\rustchest\rustchest.object objects\biome\scorchedcity\scorchedcitychest\scorchedcitychest.object objects\biome\spring\springchest\springchest.object objects\biome\stonecave\cavechest\cavechest.object objects\biome\swamp\swampchest\swampchest.object objects\biome\tar\tarpitchest\tarpitchest.object objects\biome\toxicplains\toxicchest\toxicchest.object objects\biome\volcanic\volcanicchest\volcanicchest.object objects\floran\chestfloran1\chestfloran1.object objects\floran\chestfloran2\chestfloran2.object objects\floran\chestplant1\chestplant1.object objects\fossils\displaystands\fossildisplay1\fossildisplay1.object objects\fossils\displaystands\fossildisplay3\fossildisplay3.object objects\fossils\displaystands\fossildisplay5\fossildisplay5.object objects\generic\gunchest\gunchest.object objects\generic\mannequin\mannequin.object objects\generic\podchest\podchest.object objects\generic\stonechest\ironchest.object objects\generic\techchest\techchest.object objects\generic\techchest2\techchest2.object objects\generic\weaponchest\weaponchest.object objects\generic\woodenchest\woodenchest.object objects\glitch\medievalchest\medievalchest.object objects\hoard\treasurechest\treasurechest.object objects\mission\bossdoor\bossdoor.object objects\mission\miningchest\miningchest.object objects\outpost\penguinbay\penguinbay.object [NEW] objects\teleporter\exitteleporter.lua objects\teleporter\returnoutpostteleporter\returnoutpostteleporter.object objects\wired\door\door.lua quests\generated\templates\recruit_guard.questtemplate quests\outpost\outpostclue.questtemplate quests\outpost\shipupgrade\illegalshipupgrade4.questtemplate quests\outpost\shipupgrade\shipupgrade2.questtemplate quests\scripts\story\shiprepair.lua quests\story\destroyruin.questtemplate quests\story\shiprepair.questtemplate recipes\furnace1\bars\copperbar.recipe recipes\furnace1\bars\goldbar.recipe recipes\furnace1\bars\ironbar.recipe recipes\furnace1\bars\silverbar.recipe recipes\furnace1\bars\tungstenbar.recipe recipes\furnace2\bars\durasteelbar.recipe recipes\furnace2\bars\titaniumbar.recipe recipes\furnace3\bars\refinedaegisalt.recipe recipes\furnace3\bars\refinedferozium.recipe recipes\furnace3\bars\refinedviolium.recipe recipes\furnace3\bars\solariumstar.recipe recipes\furniture1\materials\aztec.recipe scripts\behavior.lua scripts\pathing.lua scripts\actions\crawling.lua scripts\actions\entity.lua scripts\actions\movement.lua scripts\actions\npc.lua scripts\actions\sensor.lua scripts\actions\monsters\farmable.lua scripts\companions\player.lua [NEW] sfx\objects\mannequin_close.ogg [NEW] sfx\objects\mannequin_open.ogg sfx\tools\wateringcan1.ogg sfx\tools\wateringcan2.ogg sfx\tools\wateringcan3.ogg sfx\tools\wateringcan4.ogg ships\licenses.config tech\distortionsphere\spikesphere.lua tiles\materials\jellyblock.material tiles\materials\tentacleblock.material tilesets\packed\miscellaneous.json tilesets\packed\objects-by-category\crafting.json tilesets\packed\objects-by-category\door.json tilesets\packed\objects-by-category\other.json tilesets\packed\objects-by-colonytag\crafting.json tilesets\packed\objects-by-colonytag\door.json tilesets\packed\objects-by-race\generic.json tilesets\packed\objects-by-type\container.json tilesets\packed\objects-by-type\physics.json treasure\common.treasurepools treasure\fossils.treasurepools vehicles\boat\boat.animation vehicles\boat\boat.vehicle vehicles\boat\boatforeground.png vehicles\boat\boatforegroundtop.png DIFFS ----- codex.config 6c6,8 < "tooltipKind" : "codex" --- > "tooltipKind" : "codex", > "windupTime" : 0.1, > "cooldown" : 0.0 12c14 < "learned" : "New codex learned!" --- > "learned" : "Codex added to journal!" help.config 40c40 < "placedungeon" : "Usage /placedungeon . Place the given dungeon into the world anchored at the cursor position. Ignores anchoring rules.", --- > "placedungeon" : "Usage /placedungeon dungeonname [position]. Place the given dungeon into the world anchored at the specified position or the player's cursor position. Positions should be specified as x,y. Ignores anchoring rules. ", interface.config 490c490,492 < } --- > }, > > "modsWarningMessage" : "Installing and uninstalling mods can corrupt your save files, you may want to back up the 'storage' directory before continuing." metamaterials.config 31a32,37 > "name" : "underwaterBoundary", > "materialId" : 65020, > "collisionKind" : "slippery", > "blocksLiquidFlow" : false > }, > { player.config 696c696 < "recruitDescription" : "> \n> Job: \n> Rank: \n\n> Status: ", --- > "recruitDescription" : "^cyan;> Name: ^white;\n^cyan;> Job:^white; \n^cyan;> Rank:^white; \n^cyan;> Status:^white; ", universe_server.config 53c53,56 < "commandProcessorScripts" : [] --- > "commandProcessorScripts" : [], > > "serverAssetsMismatchMessage" : "This server disallows connections from clients with mismatched assets", > "clientAssetsMismatchMessage" : "Assets mismatch between client and server, and the override option is not set" behaviors\monsters\boss\cultistboss\sphereattack.behavior 5d4 < "/scripts/actions/monster.lua", 7,8d5 < "/scripts/actions/entity.lua", < "/monsters/monster.lua", 9a7 > "/scripts/actions/monster.lua", 21c19,20 < "repeats": 8 --- > "repeats": 8, > "sphereDashTime": 2 205,207c204,206 < "title": "cultistSphereDash", < "type": "action", < "name": "cultistSphereDash", --- > "title": "parallel", > "type": "composite", > "name": "parallel", 209,217c208,235 < "centripetalForce": "", < "controlForce": "", < "initialOffset": [ < 0, < 10 < ], < "speed": "", < "target": "target" < } --- > "fail": 1, > "success": 1 > }, > "children": [ > { > "title": "cultistSphereDash", > "type": "action", > "name": "cultistSphereDash", > "parameters": { > "centripetalForce": "", > "controlForce": "", > "initialOffset": [ > 0, > 10 > ], > "speed": "", > "target": "target" > } > }, > { > "title": "timer", > "type": "action", > "name": "timer", > "parameters": { > "time": "" > } > } > ] behaviors\monsters\boss\kluexboss\plasmaattack.behavior 5d4 < "/scripts/actions/monster.lua", 7,8d5 < "/scripts/actions/entity.lua", < "/monsters/monster.lua", 13,16c10 < "/scripts/actions/world.lua", < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/actions/projectiles.lua", --- > "/scripts/actions/projectiles.lua", behaviors\monsters\modular\targeting.behavior 23c23,24 < "targetOutOfSightTime": 5 --- > "targetOutOfSightTime": 5, > "targetQueryCooldown": 1 186c187 < "cooldown": 1, --- > "cooldown": "", behaviors\monsters\modular\movement\flyapproach.behavior 2a3 > "description": "", 4d4 < "/scripts/actions/monster.lua", 6,7d5 < "/scripts/actions/entity.lua", < "/monsters/monster.lua", 9,11c7 < "/scripts/actions/query.lua", < "/scripts/actions/entity.lua", < "/scripts/behavior.lua", --- > "/scripts/behavior.lua", 16d11 < "/scripts/actions/flying.lua", 17a13,14 > "/scripts/actions/entity.lua", > "/scripts/actions/flying.lua", 495a493,530 > { > "title": "parallel", > "type": "composite", > "name": "parallel", > "parameters": { > "fail": 1, > "success": -1 > }, > "children": [ > { > "title": "lineLiquidCollision", > "type": "action", > "name": "lineLiquidCollision", > "parameters": { > "startLine": "self", > "endLine": "movePosition" > } > }, > { > "title": "controlApproachVelocity", > "type": "action", > "name": "controlApproachVelocity", > "parameters": { > "velocity": [ > 0, > 0 > ], > "force": 20 > } > }, > { > "title": "runner", > "type": "action", > "name": "runner", > "parameters": {} > } > ] > }, behaviors\monsters\modular\movement\flywander.behavior 6d5 < "/scripts/actions/monster.lua", 8,9d6 < "/scripts/actions/entity.lua", < "/monsters/monster.lua", 11a9 > "/scripts/actions/position.lua", 156,170c154,213 < "title": "lineTileCollision", < "type": "action", < "name": "lineTileCollision", < "parameters": { < "position": "self", < "offset": [ < 0, < "groundCheckDistance" < ], < "collisionType": [ < "Null", < "Block", < "Dynamic" < ] < } --- > "title": "selector", > "type": "composite", > "name": "selector", > "parameters": {}, > "children": [ > { > "title": "lineTileCollision", > "type": "action", > "name": "lineTileCollision", > "parameters": { > "position": "self", > "offset": [ > 0, > "groundCheckDistance" > ], > "collisionType": [ > "Null", > "Block", > "Dynamic" > ] > } > }, > { > "title": "sequence", > "type": "composite", > "name": "sequence", > "parameters": { > "type": "sliding", > "state": "off", > "fromEntity": "attackTarget", > "toEntity": "fleeTarget" > }, > "children": [ > { > "title": "offsetPosition", > "type": "action", > "name": "offsetPosition", > "parameters": { > "offset": [ > 0, > "groundCheckDistance" > ], > "position": "self" > }, > "output": { > "position": "groundPoint" > } > }, > { > "title": "lineLiquidCollision", > "type": "action", > "name": "lineLiquidCollision", > "parameters": { > "startLine": "self", > "endLine": "groundPoint" > } > } > ] > } > ] behaviors\npc\combat.behavior 9d8 < "/scripts/actions/time.lua", 248,298c247,250 < "title": "sequence", < "type": "composite", < "name": "sequence", < "parameters": { < "type": "sliding", < "state": "off", < "fromEntity": "attackTarget", < "toEntity": "fleeTarget" < }, < "children": [ < { < "title": "dynamic", < "type": "composite", < "name": "dynamic", < "parameters": {}, < "children": [ < { < "title": "groupResource", < "type": "action", < "name": "groupResource", < "parameters": { < "groupId": "combat", < "name": "meleePosition" < }, < "output": { < "position": "movePosition" < } < }, < { < "title": "failer", < "type": "decorator", < "name": "failer", < "parameters": {}, < "child": { < "title": "timer", < "type": "action", < "name": "timer", < "parameters": { < "time": 0.5 < } < } < } < ] < }, < { < "title": "NPC Melee", < "type": "module", < "name": "meleecombat", < "parameters": {} < } < ] --- > "title": "NPC Melee", > "type": "module", > "name": "meleecombat", > "parameters": {} behaviors\npc\combat\melee.behavior 230c230 < "yRange": 6, --- > "yRange": 5, behaviors\npc\combat\meleeleap.behavior 50c50 < "title": "projectileAimVector", --- > "title": "entityPosition", 52c52 < "name": "projectileAimVector", --- > "name": "entityPosition", 54,59c54 < "collisionCheck": true, < "fromPosition": "self", < "gravityMultiplier": 1.5, < "speed": 40, < "toPosition": "meleePosition", < "useHighArc": false --- > "entity": "target" 62c57 < "aimVector": "jumpVector" --- > "position": "targetPosition" 65a61,100 > "title": "selector", > "type": "composite", > "name": "selector", > "parameters": {}, > "children": [ > { > "title": "projectileAimVector", > "type": "action", > "name": "projectileAimVector", > "parameters": { > "collisionCheck": false, > "fromPosition": "self", > "gravityMultiplier": 1.5, > "speed": 45, > "toPosition": "targetPosition", > "useHighArc": false > }, > "output": { > "aimVector": "jumpVector" > } > }, > { > "title": "projectileAimVector", > "type": "action", > "name": "projectileAimVector", > "parameters": { > "collisionCheck": false, > "fromPosition": "self", > "gravityMultiplier": 1.5, > "speed": 45, > "toPosition": "targetPosition", > "useHighArc": true > }, > "output": { > "aimVector": "jumpVector" > } > } > ] > }, > { 120,133c155,192 < "title": "projectileAimVector", < "type": "action", < "name": "projectileAimVector", < "parameters": { < "collisionCheck": true, < "fromPosition": "self", < "gravityMultiplier": 1.5, < "speed": 40, < "toPosition": "meleePosition", < "useHighArc": false < }, < "output": { < "aimVector": "jumpVector" < } --- > "title": "selector", > "type": "composite", > "name": "selector", > "parameters": {}, > "children": [ > { > "title": "projectileAimVector", > "type": "action", > "name": "projectileAimVector", > "parameters": { > "collisionCheck": false, > "fromPosition": "self", > "gravityMultiplier": 1.5, > "speed": 45, > "toPosition": "targetPosition", > "useHighArc": false > }, > "output": { > "aimVector": "jumpVector" > } > }, > { > "title": "projectileAimVector", > "type": "action", > "name": "projectileAimVector", > "parameters": { > "collisionCheck": false, > "fromPosition": "self", > "gravityMultiplier": 1.5, > "speed": 45, > "toPosition": "targetPosition", > "useHighArc": true > }, > "output": { > "aimVector": "jumpVector" > } > } > ] 188c247 < "second": 40 --- > "second": 45 208a268,273 > }, > { > "title": "endPrimaryFire", > "type": "action", > "name": "endPrimaryFire", > "parameters": {} behaviors\npc\combat\ranged.behavior 2a3 > "description": "", 118c119 < "range": "minRange", --- > "range": 3, behaviors\npc\overrides\override-follow.behavior 3d2 < "description": "", 18c17 < "questFollowerMovementParameters": {}, --- > "questFollowerRunSpeed": 14, 222c221 < "success": 2 --- > "success": -1 274c273,274 < "run": true --- > "run": true, > "runSpeed": "" 383,407d382 < }, < { < "title": "parallel", < "type": "composite", < "name": "parallel", < "parameters": { < "fail": 1, < "success": -1 < }, < "children": [ < { < "title": "controlParameters", < "type": "action", < "name": "controlParameters", < "parameters": { < "parameters": "" < } < }, < { < "title": "runner", < "type": "action", < "name": "runner", < "parameters": {} < } < ] biomes\surface\toxic.biome 97c97 < "tracks" : [ "/sfx/environmental/arid_day.ogg" ] --- > "tracks" : [ "/sfx/environmental/ocean_surface_calm.ogg" ] 100c100 < "tracks" : [ "/sfx/environmental/arid_night.ogg" ] --- > "tracks" : [ "/sfx/environmental/ocean_surface_calm.ogg" ] boss\cultistboss\cultistbossend.monstertype 17a18 > "behaviorUpdateDelta" : 1, boss\eyeboss\eyeboss.animation 164c164 < "offset" : [-0.3125, -8.3125], --- > "offset" : [-0.3125, -8.375], boss\eyeboss\eyeboss.monstertype 14a15 > "behaviorUpdateDelta" : 1, codex\floran\floranhistory3.codex 5c5 < "description" : "A letter from a Floran who rejected the their culture.", --- > "description" : "A letter from a Floran who rejected their culture.", 16c16 < If you are able to read this please consider it!" --- > If you are able to read this, please consider it!" codex\floran\floranhistory5.codex 6c6 < "icon" : "florancover4.png", --- > "icon" : "florancover3.png", codex\floran\floranhistory6.codex 13c13 < Many Greenfinger lack strength and as such use their cunning to appear strong, outsmarting others and paying close attention to the shifting hierarchy in your tribe will allow you to get ahead of those who are influential among your people." --- > Many Greenfingers lack strength, and as such use their cunning to appear strong. Outsmarting others and paying close attention to the shifting hierarchy in your tribe will allow you to get ahead of those who are influential among your people." codex\floran\floranhistory7.codex 16c16 < 3: eat Meats --- > 3: Eat Meats 18,19c18,19 < Tips: Do not eat other Floran if they still alive < cooking meat is Easier if it Isn't still Screaming" --- > Tips: Do not eat other Floran if they still alive. > Cooking meat is easier if it isn't still screaming" dialog\converse.config 1268c1268 < "Does you're glow attract bugs at night? I collect bugs...", --- > "Does your glow attract bugs at night? I collect bugs...", dialog\crewmember.config 8c8 < "So what is today's mission, captain?", --- > "So what is today's mission?", 16a17 > "I soar across the stars, not on feather wings but among the company of friends.", 24c25 < "Captain, when can Floran next sstab things?" --- > "Floran isss eager to sstab things soon!" 29c30 < "Eager. What do we have scheduled for today?", --- > "Eager. I have so much scheduled for today!", 31c32,33 < "Friendly. You're a great captain." --- > "Excited. There is so much questing to be done!", > "Friendly. You'll be safe if you stay close to me!" 36c38,39 < "Adventure!", --- > "Adventure ahoy!", > "Flying through space, running into misadventure... This is the life!", 39c42 < "Captain! What's next? Adventure, intrigue, pillage? Not pillage, right?" --- > "What lies next on the road ahead? Adventure, intrigue, pillaging? Not pillaging, right?" 51c54 < "Howdy, captain!", --- > "Howdy!", dungeons\missions\avianmissions\avianmission1.json [TMX file differences are left out for huge size.] dungeons\missions\floranmissions\floranmission1.dungeon 2435c2435 < "brush" : [ [ "clear" ], [ "object", "bardoor3", { "parameters" : { "locked" : true, "interactive" : false } } ] ] --- > "brush" : [ [ "clear" ], [ "object", "bardoor3", { "parameters" : { "locked" : true } } ] ] 2544c2544 < "brush" : [ [ "clear" ], [ "object", "dirttrapdoor", { "direction" : "left", "parameters" : { "locked" : true, "interactive" : false } } ] ] --- > "brush" : [ [ "clear" ], [ "object", "dirttrapdoor", { "direction" : "left", "parameters" : { "locked" : true } } ] ] 2550c2550 < "brush" : [ [ "clear" ], [ "object", "dirttrapdoor", { "direction" : "right", "parameters" : { "locked" : true, "interactive" : false } } ] ] --- > "brush" : [ [ "clear" ], [ "object", "dirttrapdoor", { "direction" : "right", "parameters" : { "locked" : true } } ] ] dungeons\missions\hylotlmissions\hylotlmission1.json [TMX file differences are left out for huge size.] dungeons\missions\lunarbase\lunarbase.dungeon 926c926 < "brush" : [ [ "clear" ], [ "object", "returnoutpostteleporter" ] ] --- > "brush" : [ [ "clear" ], [ "object", "returnoutpostteleporter", { "parameters" : { "setUniverseFlag" : "outpost_mission1" } } ] ] dungeons\other\challengerooms\collapse.json [TMX file differences are left out for huge size.] interface\games\fossilgame\tools.lua 309,311c309,311 < VRect.frames={2,1,2,1} < VRect.soundTriggerSequence={1,0,1,0} < VRect.strikeFrame=3 --- > HRect.frames={2,1,2,1} > HRect.soundTriggerSequence={1,0,1,0} > HRect.strikeFrame=3 interface\modsmenu\modsmenu.config 10c10,23 < "scrollBG" : { --- > "windowtitle" : { > "type" : "title", > "title" : "Mod Manager", > "subtitle" : "^#b9b5b2;Manage all of those mods!", > "position" : [0, 254], > "icon" : { > "type" : "image", > "file" : "/interface/modsmenu/iconmodmanager.png", > "position" : [0, 0], > "zlevel" : -1 > } > }, > > "modListBackground" : { 13c26 < "position" : [20, 25], --- > "position" : [2, 37], 17,23c30,34 < "windowtitle" : { < "type" : "label", < "value" : "Starbound Assets", < "position" : [200, 220], < "hAnchor" : "mid", < "vAnchor" : "mid", < "fontSize" : 16 --- > "informationBackground" : { > "type" : "image", > "file" : "/interface/modsmenu/informationbg.png", > "position" : [175, 37], > "zlevel" : -5 28c39 < "rect" : [20, 35, 190, 197], --- > "rect" : [3, 45, 172, 207], 31a43 > "position" : [1, -1], 35,36c47,48 < "spacing" : [0, 1], < "memberSize" : [160, 9], --- > "spacing" : [0, -2], > "memberSize" : [162, 21], 43a56,61 > "icon" : { > "type" : "image", > "file" : "/interface/modsmenu/modicon.png", > "position" : [2, 2], > "zlevel" : 1 > }, 46c64 < "position" : [2, 0], --- > "position" : [22, 10], 47a66 > "vAnchor" : "mid", 56a76,84 > "selectmodlabel" : { > "type" : "label", > "value" : "Select Mod", > "position" : [82, 216], > "hAnchor" : "mid", > "vAnchor" : "top", > "fontSize" : 9 > }, > 59,61c87,89 < "value" : "This is a mod", < "position" : [198, 200], < "hAnchor" : "left", --- > "value" : "", > "position" : [258, 216], > "hAnchor" : "mid", 65a94,103 > "modauthorlabel" : { > "type" : "label", > "value" : "AUTHOR", > "position" : [179, 201], > "hAnchor" : "left", > "vAnchor" : "top", > "color" : "#b9b5b2", > "fontSize" : 8 > }, > 68,69c106,116 < "value" : "This is its author", < "position" : [198, 188], --- > "value" : "", > "position" : [217, 201], > "hAnchor" : "left", > "vAnchor" : "top", > "fontSize" : 8 > }, > > "modversionlabel" : { > "type" : "label", > "value" : "VERSION", > "position" : [179, 188], 71a119 > "color" : "#b9b5b2", 77,78c125,126 < "value" : "This is its version", < "position" : [198, 176], --- > "value" : "", > "position" : [217, 188], 86c134,136 < "rect" : [198, 130, 365, 166], --- > "rect" : [178, 142.5, 335, 170], > "horizontalScroll" : true, > "verticalScroll" : false, 90c140 < "value" : "/this/is/its/very/very/very/very/very/very/very/very/very/very/very/very/very/very/very/long/path", --- > "value" : "", 92,93c142 < "fontSize" : 8, < "wrapWidth" : 170 --- > "fontSize" : 8 100c149 < "rect" : [198, 40, 365, 128], --- > "rect" : [178, 47, 348, 134], 104c153 < "value" : "This is its very very very very very very very very very very very very very very very very very very very very very very very very very very very very very long description", --- > "value" : "", 108c157 < "wrapWidth" : 170 --- > "wrapWidth" : 160 interface\optionsmenu\optionsmenu.config 216a217,235 > "clientAllowAssetsMismatchLabel" : { > "type" : "label", > "position" : [125, 41], > "hAnchor" : "left", > "vAnchor" : "bottom", > "wrapWidth" : 80, > "value" : "ALLOW ASSETS MISMATCH" > }, > "clientAllowAssetsMismatchCheckbox" : { > "type" : "button", > "pressedOffset" : [0, 0], > "position" : [203, 47], > "base" : "/interface/optionsmenu/checkboxnocheck.png", > "hover" : "/interface/optionsmenu/checkboxnocheckhover.png", > "baseImageChecked" : "/interface/optionsmenu/checkboxcheck.png", > "hoverImageChecked" : "/interface/optionsmenu/checkboxcheckhover.png", > "checkable" : true, > "checked" : true > }, interface\warping\outpostteleporter.config 11a12,18 > }, > { > "name" : "Koichi's Museum", > "planetName" : "", > "warpAction" : "InstanceWorld:museum", > "prerequisiteQuest" : "museumcurator6", > "icon" : "default" interface\windowconfig\keybindingsmenu.config 3,4d2 < "ignoredMods" : ["Num", "Caps", "Mode"], < "allowedMods" : ["LCtrl", "RCtrl", "LAlt", "RAlt", "LShift", "RShift"], interface\windowconfig\portraitconfirmation.config 43c43 < "position" : [55, 39], --- > "position" : [55, 38], 51c51 < "position" : [222, 131] --- > "position" : [220, 132] items\active\grapplinghooks\grapplinghook.lua 36,40c36,41 < if fireMode == "primary" and self.previousFireMode ~= "primary" < and not status.statPositive("activeMovementAbilities") < and not world.lineTileCollision(mcontroller.position(), firePosition()) then < < fire() --- > if fireMode == "primary" and self.previousFireMode ~= "primary" then > if self.projectileId then > cancel() > elseif not status.statPositive("activeMovementAbilities") and not world.lineTileCollision(mcontroller.position(), firePosition()) then > fire() > end items\active\unsorted\filledcapturepod\filledcapturepod.lua 175a176,179 > if not pet.collisionPoly then > local movementSettings = root.monsterMovementSettings(pet.config.type) > pet.collisionPoly = movementSettings.standingPoly or movementSettings.crouchingPoly or movementSettings.collisionPoly > end items\active\vehiclecontroller\boatcontrollergreen.activeitem 16a17,18 > "tooltipKind" : "vehicle", > "largeImage" : "boat.png", items\active\vehiclecontroller\hoverbikecontrollergreen.activeitem 16a17,18 > "tooltipKind" : "vehicle", > "largeImage" : "green.png", items\active\vehiclecontroller\hoverbikecontrollerkhaki.activeitem 16a17,18 > "tooltipKind" : "vehicle", > "largeImage" : "khaki.png", items\active\vehiclecontroller\hoverbikecontrollerred.activeitem 16a17,18 > "tooltipKind" : "vehicle", > "largeImage" : "red.png", items\active\weapons\melee\abilities\generic\blinkslash\blinkslash.lua 19c19 < if self.weapon.currentAbility == nil --- > if self.weapon.currentAbility == nil 24c24 < and status.overConsumeResource("energy", self.energyUsage) then --- > and not status.resourceLocked("energy") then 39c39 < if self.blinkPosition then --- > if self.blinkPosition and status.overConsumeResource("energy", self.energyUsage) then 54c54 < --- > items\active\weapons\melee\abilities\generic\blinkslash\blinkslash.weaponability 64c64 < "baseDamage" : 8, --- > "baseDamage" : 16, items\active\weapons\other\tentaclegun\tentaclegun.lua 29,32c29,33 < return self.fireMode == (self.activatingFireMode or self.abilitySlot) and < self.cooldownTimer == 0 and < #self.chains < self.maxProjectiles and < not status.resourceLocked("energy") --- > return self.fireMode == (self.activatingFireMode or self.abilitySlot) > and self.cooldownTimer == 0 > and #self.chains < self.maxProjectiles > and not status.resourceLocked("energy") > and not world.lineTileCollision(mcontroller.position(), self:firePosition()) items\active\weapons\ranged\gunfire.lua 28d27 < and not world.lineTileCollision(mcontroller.position(), self:firePosition()) 30c29,30 < and not status.resourceLocked("energy") then --- > and not status.resourceLocked("energy") > and not world.lineTileCollision(mcontroller.position(), self:firePosition()) then items\fossils\humanoid\avioscalefossil1.item 18c18 < "description" : "The label reads, \"The fossilised remains of this Avioscale boasts oversized eye sockets and a prominent beak.\"" --- > "description" : "The label reads, \"This Avioscale boasts oversized eye sockets and a prominent beak.\"" items\fossils\humanoid\glitchfossil1.item 18c18 < "description" : "The label reads, \"The Glitch chassis is easily fossilised. But the internal wiring and systems are rarely preserved.\"" --- > "description" : "The label reads, \"A fossilised Glitch. The internal wiring is rarely preserved.\"" items\fossils\humanoid\humanfossil1.item 18c18 < "description" : "The label reads, \"The dominant species on the planet known as Earth, humans have gone through various stages of evolution.\"" --- > "description" : "The label reads, \"A fossilised human, the dominant species of Earth.\"" items\fossils\large\ophidauntfossil\ophidauntfossil4.item 6c6 < "shortdescription" : "Ophidaunt Mid Tail;", --- > "shortdescription" : "Ophidaunt Mid Tail", items\fossils\small\fernfossil.item 18c18 < "description" : "The label reads, \"Fossilised fern leaves are evidence that a planet sustained organic life hundreds of millennia ago.\"" --- > "description" : "The label reads, \"Fossilised fern leaves are evidence of organic life from millenia ago.\"" items\fossils\small\fishfossil.item 18c18 < "description" : "The label reads, \"One of many million species of fish in the universe. Little has changed about fish anatomy over the millennia.\"" --- > "description" : "The label reads, \"Little has changed about fish anatomy over the millennia.\"" items\fossils\small\mysteriousalienfossil.item 19c19 < "description" : "The label reads, \"The skull of an unidentified life-form, estimated to have lived widely throughout the universe.\"" --- > "description" : "The label reads, \"A strange and curious life-form, now lost to time.\"" items\materials\aztectech.matitem 3c3 < "price" : 10, --- > "price" : 7, items\tools\painttool.painttool 16,17c16,17 < "tooltipKind" : "tool", < "category" : "Tool ^green;[Y]", --- > "tooltipKind" : "mm", > "category" : "Tool", items\tools\wiretool.wiretool 10,11c10,11 < "tooltipKind" : "tool", < "category" : "Tool ^green;[T]", --- > "tooltipKind" : "mm", > "category" : "Tool", items\tools\inspectiontool\inspectionmode.inspectiontool 11c11 < "tooltipKind" : "tool", --- > "tooltipKind" : "mm", items\tools\inspectiontool\scanmode.inspectiontool 11c11 < "tooltipKind" : "tool", --- > "tooltipKind" : "mm", items\tools\miningtools\beamaxe.beamaxe 10,11c10,11 < "tooltipKind" : "tool", < "category" : "Tool ^green;[R]", --- > "tooltipKind" : "mm", > "category" : "Tool", items\tools\miningtools\beamaxeX.beamaxe 10c10 < "tooltipKind" : "tool", --- > "tooltipKind" : "mm", monsters\monster.lua 51c51 < self.behaviorTickRate = 5 --- > self.behaviorTickRate = config.getParameter("behaviorUpdateDelta", 5) monsters\boss\apeboss\apeboss.monstertype 19a20 > "behaviorUpdateDelta" : 1, monsters\boss\cultistboss\cultistboss.monstertype 20a21 > "behaviorUpdateDelta" : 1, monsters\boss\dragonboss\dragonboss.monstertype 20a21 > "behaviorUpdateDelta" : 1, monsters\boss\kluexboss\kluexboss.monstertype 18a19 > "behaviorUpdateDelta" : 1, monsters\boss\kluexbossstatue\kluexbossstatue.monstertype 15a16 > "behaviorUpdateDelta" : 1, monsters\boss\spiderboss\spiderboss.monstertype 18a19 > "behaviorUpdateDelta" : 1, monsters\crawlers\tentaclecrawler\tentaclecrawler.monstertype 100c100 < "damage" : 8, --- > "damage" : 3, 149c149 < "baseValue" : 50 --- > "baseValue" : 5 monsters\flyers\agrobat\agrobat.monstertype 19a20 > "seeThroughLiquid" : false, monsters\flyers\batong\batong.monstertype 19a20 > "seeThroughLiquid" : false, monsters\flyers\bobfae\bobfae.monstertype 20a21 > "seeThroughLiquid" : false, monsters\flyers\monopus\monopus.monstertype 21a22 > "seeThroughLiquid" : false, monsters\flyers\paratail\paratail.monstertype 19a20,21 > > "seeThroughLiquid" : false, monsters\flyers\pteropod\pteropod.monstertype 19a20 > "seeThroughLiquid" : false, monsters\flyers\scandroid\scandroid.monstertype 19a20 > "seeThroughLiquid" : false, monsters\flyers\tentaclebomb\tentaclebomb.monstertype 19a20,21 > > "seeThroughLiquid" : false, 100c102 < "damage" : 8, --- > "damage" : 5, 154c156 < "baseValue" : 50 --- > "baseValue" : 5 monsters\flyers\tentaclegnat\tentaclegnat.monstertype 19a20 > "seeThroughLiquid" : false, 84c85 < "damage" : 10, --- > "damage" : 3, monsters\flyers\tentaclespawner\tentaclespawner.monstertype 19a20 > "seeThroughLiquid" : false, 78c79 < "damage" : 10, --- > "damage" : 3, 132c133 < "baseValue" : 55 --- > "baseValue" : 10 monsters\generated\flying\largeflying\largeflying.monstertype 25a26 > "seeThroughLiquid" : false, monsters\generated\flying\smallflying\smallflying.monstertype 25a26 > "seeThroughLiquid" : false, monsters\ghosts\tentacleghost\tentacleghost.monstertype 110c110 < "damage" : 9, --- > "damage" : 5, 165c165 < "baseValue" : 30 --- > "baseValue" : 3 monsters\walkers\ringram\ringram.monstertype 35a36 > "cooldown" : 2.0, 40c41 < "chargeTime" : [3, 3], --- > "chargeTime" : 1.0, 47c48,49 < "winddownTime" : 11 --- > "winddownStopForce" : 0, > "winddownTime" : 0.5 monsters\walkers\tentacleclam\tentacleclam.monstertype 95c95 < "damage" : 11, --- > "damage" : 3, 99c99 < "knockback" : 20, --- > "knockback" : 30, 145c145 < "baseValue" : 65 --- > "baseValue" : 5 monsters\walkers\trictus\trictus.animation 17c17 < "cycle" : 0.7 --- > "cycle" : 0.5 monsters\walkers\trictus\trictus.monstertype 23a24 > "targetQueryCooldown" : 0.2, 35c36 < "animationTime" : 0.7 --- > "animationTime" : 0.5 59c60,61 < "winddownState" : "" --- > "winddownState" : "", > "winddownTime" : 0.5 npcs\base.npctype 21,23c21 < "questFollowerMovementParameters" : { < "runSpeed" : 14 < } --- > "questFollowerRunSpeed" : 14 122c120 < "forceWalkingBackwards" : true, --- > "forceWalkingBackwards" : false, 141c139 < "hammer" : 2.0, --- > "hammer" : 1.0, npcs\crew\crewmember.npctype 60c60 < "Reliable Lacky", --- > "Reliable Lackey", 81a82,85 > " Forum Moderator", > "Rogue Profiteer", > "Neutral Third Party ", > "Low Quality Negotiations", 97,117d100 < }, < < "combat" : { < "meleeWeaponWindups" : { < "default" : 0.1, < "broadsword" : 0.1, < "dagger" : 0.05, < "axe" : 0.1, < "hammer" : 0.8, < "shortsword" : 0.05, < "spear" : 0.1 < }, < "meleeWeaponCooldowns" : { < "default" : 0, < "broadsword" : 0, < "dagger" : 0, < "axe" : 0, < "hammer" : 0, < "shortsword" : 0, < "spear" : 0 < } npcs\story\baron.npctype 90a91,93 > }, > "statusProperties" : { > "effectDirectives" : "?replace=FEFFFFFF=FFFFFFFF?replace=9bd4ffFF=ffbc47FF?replace=31a6ffFF=e87b07FF" npcs\story\koichi.npctype 66a67,69 > }, > "statusProperties" : { > "effectDirectives" : "?replace=FEFFFFFF=FFFFFFFF?replace=9bd4ffFF=80b3ffFF?replace=31a6ffFF=5476f0FF" 69c72 < } --- > } \ No newline at end of file npcs\story\lana.npctype 90a91,93 > }, > "statusProperties" : { > "effectDirectives" : "?replace=FEFFFFFF=FFFFFFFF?replace=9bd4ffFF=80f4ffFF?replace=31a6ffFF=39b8e3FF" 93c96 < } --- > } \ No newline at end of file npcs\story\lanafight.npctype 69a70,72 > }, > "statusProperties" : { > "effectDirectives" : "?replace=FEFFFFFF=FFFFFFFF?replace=9bd4ffFF=80f4ffFF?replace=31a6ffFF=39b8e3FF" npcs\story\nuru.npctype 162a163,165 > }, > "statusProperties" : { > "effectDirectives" : "?replace=FEFFFFFF=FFFFFFFF?replace=9bd4ffFF=8af062FF?replace=31a6ffFF=40bf21FF" 165c168 < } --- > } \ No newline at end of file npcs\story\nurufight.npctype 73a74,76 > }, > "statusProperties" : { > "effectDirectives" : "?replace=FEFFFFFF=FFFFFFFF?replace=9bd4ffFF=8af062FF?replace=31a6ffFF=40bf21FF" npcs\story\tonauac.npctype 19c19 < --- > 136a137,139 > }, > "statusProperties" : { > "effectDirectives" : "?replace=FEFFFFFF=FFFFFFFF?replace=9bd4ffFF=ff7a69FF?replace=31a6ffFF=d93a3aFF" objects\ancient\ancientbigchest\ancientbigchest.object 8c8 < "health" : 5, --- > "health" : 1.5, objects\ancient\ancientchest\ancientchest.object 8c8 < "health" : 5, --- > "health" : 1.5, objects\avian\chestavian\chestavian1.object 13c13 < "health" : 5, --- > "health" : 1.5, objects\avian\chestavian2\chestavian2.object 13c13 < "health" : 5, --- > "health" : 1.5, objects\avian\chestmedavian\chestmedavian1.object 13c13 < "health" : 5, --- > "health" : 1.5, objects\avian\chestmedavian2\chestmedavian2.object 13c13 < "health" : 5, --- > "health" : 1.5, objects\biome\alien\alienchest\alienchest.object 14c14 < "health" : 5, --- > "health" : 1.5, objects\biome\alpine\stonechest\stonechest.object 14c14 < "health" : 5, --- > "health" : 1.5, objects\biome\bioluminescence\glowchest\glowchest.object 14c14 < "health" : 5, --- > "health" : 1.5, objects\biome\bone\bonechest\bonechest.object 14c14 < "health" : 5, --- > "health" : 1.5, objects\biome\cell\cellchest\cellchest.object 14c14 < "health" : 5, --- > "health" : 1.5, objects\biome\colourful\rainbowchest\rainbowchest.object 14c14 < "health" : 5, --- > "health" : 1.5, objects\biome\crystalline\crystalchest\crystalchest.object 14c14 < "health" : 5, --- > "health" : 1.5, objects\biome\dark\shadowchest\shadowchest.object 14c14 < "health" : 5, --- > "health" : 1.5, objects\biome\desert\sandstonechest\sandstonechest.object 14c14 < "health" : 5, --- > "health" : 1.5, objects\biome\eyepatch\eyechest\eyechest.object 14c14 < "health" : 5, --- > "health" : 1.5, objects\biome\flesh\fleshchest\fleshchest.object 14c14 < "health" : 5, --- > "health" : 1.5, objects\biome\geologicalsample\corefragmentsample\corefragmentsample.object 8c8 < "description" : "\"A perfect sample of a core fragment ore.\"", --- > "description" : "\"A perfect sample of a core fragment.\"", objects\biome\geologicalsample\geodebluesample\geodebluesample.object 11c11 < "apexDescription" : "Geode's are fascinating rock formations!", --- > "apexDescription" : "Geodes are fascinating rock formations!", 16c16 < "hylotlDescription" : "Geode's keep lovely secrets on the inside.", --- > "hylotlDescription" : "Geodes keep lovely secrets on the inside.", objects\biome\geologicalsample\geodegreensample\geodegreensample.object 11c11 < "apexDescription" : "Geode's are fascinating rock formations!", --- > "apexDescription" : "Geodes are fascinating rock formations!", 16c16 < "hylotlDescription" : "Geode's keep lovely secrets on the inside.", --- > "hylotlDescription" : "Geodes keep lovely secrets on the inside.", objects\biome\geologicalsample\geodeorangesample\geodeorangesample.object 11c11 < "apexDescription" : "Geode's are fascinating rock formations!", --- > "apexDescription" : "Geodes are fascinating rock formations!", 16c16 < "hylotlDescription" : "Geode's keep lovely secrets on the inside.", --- > "hylotlDescription" : "Geodes keep lovely secrets on the inside.", objects\biome\geologicalsample\geodepurplesample\geodepurplesample.object 11c11 < "apexDescription" : "Geode's are fascinating rock formations!", --- > "apexDescription" : "Geodes are fascinating rock formations!", 16c16 < "hylotlDescription" : "Geode's keep lovely secrets on the inside.", --- > "hylotlDescription" : "Geodes keep lovely secrets on the inside.", objects\biome\geologicalsample\geoderedsample\geoderedsample.object 11c11 < "apexDescription" : "Geode's are fascinating rock formations!", --- > "apexDescription" : "Geodes are fascinating rock formations!", 16c16 < "hylotlDescription" : "Geode's keep lovely secrets on the inside.", --- > "hylotlDescription" : "Geodes keep lovely secrets on the inside.", objects\biome\geologicalsample\geodeyellowsample\geodeyellowsample.object 11c11 < "apexDescription" : "Geode's are fascinating rock formations!", --- > "apexDescription" : "Geodes are fascinating rock formations!", 16c16 < "hylotlDescription" : "Geode's keep lovely secrets on the inside.", --- > "hylotlDescription" : "Geodes keep lovely secrets on the inside.", objects\biome\giantflower\giantflowerchest\giantflowerchest.object 14c14 < "health" : 5, --- > "health" : 1.5, objects\biome\hive\hivechest\hivechest.object 14c14 < "health" : 5, --- > "health" : 1.5, objects\biome\ice\icechest\icechest.object 14c14 < "health" : 5, --- > "health" : 1.5, objects\biome\icesphere\icespherechest\icespherechest.object 14c14 < "health" : 5, --- > "health" : 1.5, objects\biome\jungle\junglechest\junglechest.object 14c14 < "health" : 5, --- > "health" : 1.5, objects\biome\mushroom\shroomchest\shroomchest.object 14c14 < "health" : 5, --- > "health" : 1.5, objects\biome\oasis\reedchest\reedchest.object 14c14 < "health" : 5, --- > "health" : 1.5, objects\biome\rust\rustchest\rustchest.object 14c14 < "health" : 5, --- > "health" : 1.5, objects\biome\scorchedcity\scorchedcitychest\scorchedcitychest.object 13c13 < "health" : 5, --- > "health" : 1.5, objects\biome\spring\springchest\springchest.object 14c14 < "health" : 5, --- > "health" : 1.5, objects\biome\stonecave\cavechest\cavechest.object 14c14 < "health" : 5, --- > "health" : 1.5, objects\biome\swamp\swampchest\swampchest.object 13c13 < "health" : 5, --- > "health" : 1.5, objects\biome\tar\tarpitchest\tarpitchest.object 14c14 < "health" : 5, --- > "health" : 1.5, objects\biome\toxicplains\toxicchest\toxicchest.object 14c14 < "health" : 5, --- > "health" : 1.5, objects\biome\volcanic\volcanicchest\volcanicchest.object 13c13 < "health" : 5, --- > "health" : 1.5, objects\floran\chestfloran1\chestfloran1.object 13c13 < "health" : 5, --- > "health" : 1.5, objects\floran\chestfloran2\chestfloran2.object 13c13 < "health" : 5, --- > "health" : 1.5, objects\floran\chestplant1\chestplant1.object 13c13 < "health" : 5, --- > "health" : 1.5, objects\fossils\displaystands\fossildisplay1\fossildisplay1.object 6c6 < "tooltipKind" : "container", --- > "tooltipKind" : "fossil", 30c30 < "scripts" : ["/objects/fossils/displaystands/fossildisplay.lua"], --- > "scripts" : ["/objects/fossils/displaystands/fossildisplay.lua"], objects\fossils\displaystands\fossildisplay3\fossildisplay3.object 6c6 < "tooltipKind" : "container", --- > "tooltipKind" : "fossil", objects\fossils\displaystands\fossildisplay5\fossildisplay5.object 6c6 < "tooltipKind" : "container", --- > "tooltipKind" : "fossil", objects\generic\gunchest\gunchest.object 13c13 < "health" : 5, --- > "health" : 1.5, objects\generic\mannequin\mannequin.object 31,32c31,32 < "openSounds" : [ "/sfx/objects/chest_small_open.ogg" ], < "closeSounds" : [ "/sfx/objects/chest_small_close.ogg" ], --- > "openSounds" : [ "/sfx/objects/mannequin_open.ogg" ], > "closeSounds" : [ "/sfx/objects/mannequin_close.ogg" ], objects\generic\podchest\podchest.object 13c13 < "health" : 5, --- > "health" : 1.5, objects\generic\stonechest\ironchest.object 13c13 < "health" : 5, --- > "health" : 1.5, objects\generic\techchest\techchest.object 13c13 < "health" : 5, --- > "health" : 1.5, objects\generic\techchest2\techchest2.object 13c13 < "health" : 5, --- > "health" : 1.5, objects\generic\weaponchest\weaponchest.object 13c13 < "health" : 5, --- > "health" : 1.5, objects\generic\woodenchest\woodenchest.object 13c13 < "health" : 5, --- > "health" : 1.5, objects\glitch\medievalchest\medievalchest.object 13c13 < "health" : 5, --- > "health" : 1.5, objects\hoard\treasurechest\treasurechest.object 13c13 < "health" : 5, --- > "health" : 1.5, objects\mission\bossdoor\bossdoor.object 10c10 < "description" : "A force field which can only be passed through one way", --- > "description" : "A force field which can only be passed through one way.", 12a13,20 > > "apexDescription" : "This ancient looking door can only be entered from one direction.", > "avianDescription" : "This door is going to keep me marching forward - I will not be able to come back through it.", > "floranDescription" : "Old door won't let Floran come back through it.", > "glitchDescription" : "Concerned. This door can only be entered from one direction. There's no going back through it.", > "humanDescription" : "This door creates a one-way force field. Anyone going through isn't coming back the same way...", > "hylotlDescription" : "This door creates a force field that can only be entered from one side. One cannot turn back through it.", > "novakidDescription" : "", objects\mission\miningchest\miningchest.object 13c13 < "health" : 5, --- > "health" : 1.5, objects\outpost\penguinbay\penguinbay.object 135,139c135,139 < { "item" : "fakelicense1", "prerequisiteShipLevel" : 3, "maxShipLevel" : 3 }, < { "item" : "fakelicense2", "prerequisiteShipLevel" : 4, "maxShipLevel" : 4 }, < { "item" : "fakelicense3", "prerequisiteShipLevel" : 5, "maxShipLevel" : 5 }, < { "item" : "fakelicense4", "prerequisiteShipLevel" : 6, "maxShipLevel" : 6 }, < { "item" : "fakelicense5", "prerequisiteShipLevel" : 7, "maxShipLevel" : 7 } --- > { "item" : "fakelicense1", "prerequisiteShipLevel" : 3, "exclusiveQuests" : [ "shipupgrade1", "illegalshipupgrade1" ] }, > { "item" : "fakelicense2", "prerequisiteShipLevel" : 4, "exclusiveQuests" : [ "shipupgrade2", "illegalshipupgrade2" ] }, > { "item" : "fakelicense3", "prerequisiteShipLevel" : 5, "exclusiveQuests" : [ "shipupgrade3", "illegalshipupgrade3" ] }, > { "item" : "fakelicense4", "prerequisiteShipLevel" : 6, "exclusiveQuests" : [ "shipupgrade4", "illegalshipupgrade4" ] }, > { "item" : "fakelicense5", "prerequisiteShipLevel" : 7, "exclusiveQuests" : [ "shipupgrade5", "illegalshipupgrade5" ] } objects\teleporter\returnoutpostteleporter\returnoutpostteleporter.object 39c39,42 < ] --- > ], > > "scripts" : [ "/objects/teleporter/exitteleporter.lua" ], > "scriptDelta" : 0 objects\wired\door\door.lua 63c63 < object.setInteractive(config.getParameter("interactive", true) and not object.isInputNodeConnected(0)) --- > object.setInteractive(config.getParameter("interactive", true) and not object.isInputNodeConnected(0) and not storage.locked) 146a147 > updateInteractive() 157a159 > updateInteractive() quests\generated\templates\recruit_guard.questtemplate 43,44c43,44 < "^cyan;Vulnerable. I would feel safer with a guard around here. Can you help me recruit one?", < "^cyan;Defenseless. There isn't enough protection around here. Recruiting a new guard might help." --- > "^cyan;Defenseless. I would feel safer with a guard around here. Can you help me recruit one?", > "^cyan;Vulnerable. There isn't enough protection around here. Recruiting a guard might help." quests\outpost\outpostclue.questtemplate 31a32 > "2stopshopclosed" : 10, 33d33 < "signstoreclosed" : 10, 34a35 > "signstoreclosed" : 10, 35a37 > "terramartclosed" : 10, 36a39 > "frogfurnishingclosed" : 10, 50a54,61 > "2stopshopclosed" : { > "messageId" : "outpostclue_up1b", > "type" : "quest", > "unique" : false, > "senderName" : "Esther", > "text" : "You can buy personal teleporters from this shop once it opens. Extremely useful things.", > "portraitImage" : "/interface/chatbubbles/esthertalk.png:" > }, 59c70 < "signstoreclosed" : { --- > "signstore" : { 64c75 < "text" : "When this store is open for business you'll be able to create custom signs here.", --- > "text" : "At this store you're able to create your own custom signs.", 67,68c78,79 < "signstore" : { < "messageId" : "outpostclue_up3", --- > "signstoreclosed" : { > "messageId" : "outpostclue_up3b", 72c83 < "text" : "At this store you're able to create your own custom signs.", --- > "text" : "When this store is open for business you'll be able to create custom signs here.", 82a94,101 > "terramartclosed" : { > "messageId" : "outpostclue_up4b", > "type" : "quest", > "unique" : false, > "senderName" : "Esther", > "text" : "When Terramart is open, it will stock farming and gardening supplies, among other things. They will even buy home-grown produce from you through their remote shipping service.", > "portraitImage" : "/interface/chatbubbles/esthertalk.png:" > }, 90a110,117 > "frogfurnishingclosed" : { > "messageId" : "outpostclue_up5b", > "type" : "quest", > "unique" : false, > "senderName" : "Esther", > "text" : "This furniture shop will sell a selection of exotic pieces from across the universe, and regularly have new stock. It will also sell colony deeds, which attract tenants when placed in dwellings.", > "portraitImage" : "/interface/chatbubbles/esthertalk.png:" > }, 92c119 < "messageId" : "outpostclue_up5", --- > "messageId" : "outpostclue_up6b", 100c127 < "messageId" : "outpostclue_up5", --- > "messageId" : "outpostclue_up6", 108c135 < "messageId" : "outpostclue_up5", --- > "messageId" : "outpostclue_up7", quests\outpost\shipupgrade\illegalshipupgrade4.questtemplate 4c4 < "text" : "This ship licence is entirely and completely legal, for sure. ^green;Visit Penguin Pete^reset; with ^orange;8 Upgrade Modules^reset; to upgrade your ship.", --- > "text" : "This ship license is entirely and completely legal, for sure. ^green;Visit Penguin Pete^reset; with ^orange;8 Upgrade Modules^reset; to upgrade your ship.", quests\outpost\shipupgrade\shipupgrade2.questtemplate 4c4 < "text" : "You have four crew memebers! With a crew this size, you now qualify for the Kestrel License. Congratulations! ^green;Visit Penguin Pete^reset; with ^orange;4 Upgrade Modules^reset; to upgrade your ship.", --- > "text" : "You have four crew members! With a crew this size, you now qualify for the Kestrel License. Congratulations! ^green;Visit Penguin Pete^reset; with ^orange;4 Upgrade Modules^reset; to upgrade your ship.", quests\scripts\story\shiprepair.lua 47,53d46 < local setUniverseFlags = config.getParameter("setUniverseFlags") < if setUniverseFlags then < for _, flagName in pairs(setUniverseFlags) do < player.setUniverseFlag(flagName) < end < end < quests\story\destroyruin.questtemplate 8c8 < "moneyRange" : [50, 50], --- > "moneyRange" : [500, 500], 10c10 < [ ["rewardbag", 1] ] --- > [ ["superrewardbag", 1] ] quests\story\shiprepair.questtemplate 32,33c32 < "estherUid" : "estheroutpost", < "setUniverseFlags" : ["outpost_mission1"] --- > "estherUid" : "estheroutpost" recipes\furnace1\bars\copperbar.recipe 8a9 > "duration" : 0.15, recipes\furnace1\bars\goldbar.recipe 8a9 > "duration" : 0.15, recipes\furnace1\bars\ironbar.recipe 5a6 > "duration" : 0.15, recipes\furnace1\bars\silverbar.recipe 8a9 > "duration" : 0.15, recipes\furnace1\bars\tungstenbar.recipe 5a6 > "duration" : 0.15, recipes\furnace2\bars\durasteelbar.recipe 5a6 > "duration" : 0.15, recipes\furnace2\bars\titaniumbar.recipe 8a9 > "duration" : 0.15, recipes\furnace3\bars\refinedaegisalt.recipe 8a9 > "duration" : 0.15, recipes\furnace3\bars\refinedferozium.recipe 8a9 > "duration" : 0.15, recipes\furnace3\bars\refinedviolium.recipe 8a9 > "duration" : 0.15, recipes\furnace3\bars\solariumstar.recipe 8a9 > "duration" : 0.15, recipes\furniture1\materials\aztec.recipe 7c7 < "count" : 10 --- > "count" : 1 scripts\behavior.lua 5c5 < --RunningNodes = {} --- > RunningNodes = {} 121,123c121,123 < -- if self.topLevel then < -- table.insert(RunningNodes, self.name) < -- end --- > if self.topLevel then > table.insert(RunningNodes, self.name) > end 143,151c143,151 < -- if self.topLevel then < -- local y = 0 < -- local position = mcontroller.position() < -- for _,moduleName in pairs(RunningNodes) do < -- world.debugText(moduleName, {position[1], position[2] + y}, "yellow") < -- y = y + 1 < -- end < -- RunningNodes = {} < -- end --- > if self.topLevel then > local y = 0 > local position = mcontroller.position() > for _,moduleName in pairs(RunningNodes) do > world.debugText(moduleName, {position[1], position[2] + y}, "yellow") > y = y + 1 > end > RunningNodes = {} > end 172c172 < --table.insert(RunningNodes, string.format("%s - %s", node.behavior, node.name)) --- > table.insert(RunningNodes, string.format("%s - %s", node.behavior, node.name)) scripts\pathing.lua 168c168 < maxCooldown = 5 --- > movementParameters = {} 218c218,222 < return self:edgeMove() --- > self.controlParameters = copy(self.options.movementParameters) > local result = self:edgeMove() > mcontroller.controlParameters(self.controlParameters) > > return result 346,351c350,353 < mcontroller.controlParameters({ < airFriction = 0, < liquidFriction = 0, < liquidImpedance = 0, < groundFriction = 0 < }) --- > self.controlParameters.airFriction = 0 > self.controlParameters.liquidFriction = 0 > self.controlParameters.liquidImpedance = 0 > self.controlParameters.groundFriction = 0 363a366 > return "running" 401,406c404,407 < mcontroller.controlParameters({ < airFriction = 0, < liquidFriction = 0, < liquidImpedance = 0, < groundFriction = 0 < }) --- > self.controlParameters.airFriction = 0 > self.controlParameters.liquidFriction = 0 > self.controlParameters.liquidImpedance = 0 > self.controlParameters.groundFriction = 0 scripts\actions\crawling.lua 25d24 < local ground, headingDirection, headingAngle = setGroundDirection(groundDirection) 28a28 > local headingAngle 30,31c30 < local direction = BData:getNumber(args.direction) < if direction == nil then return false end --- > local groundDirection = findGroundDirection() 33,50c32,35 < -- Fail when not adjacent to any blocks < if not findGroundDirection() then break end < ground, headingDirection, headingAngle = setGroundDirection(ground) < < -- Rotate to ground slope < local newDirection = groundSlopeDirection(headingAngle) < if newDirection then < headingDirection = newDirection < headingAngle = math.atan(headingDirection[2], headingDirection[1]) < ground = vec2.rotate(headingDirection, -math.pi/2) < end < < mcontroller.controlParameters({ < gravityEnabled = false < }) < mcontroller.controlApproachVelocity(vec2.mul(vec2.rotate(headingDirection, -math.pi/2), moveSpeed), 50) < local moveDirection = vec2.mul(headingDirection, direction) < mcontroller.controlApproachVelocityAlongAngle(math.atan(moveDirection[2], moveDirection[1]), moveSpeed, 2000) --- > if groundDirection then > if not headingAngle then > headingAngle = (math.atan(groundDirection[2], groundDirection[1]) + math.pi / 2) % (math.pi * 2) > end 52,53c37,38 < world.debugLine(mcontroller.position(), vec2.add(vec2.mul(moveDirection, 5), mcontroller.position()), "yellow") < world.debugLine(mcontroller.position(), vec2.add(mcontroller.position(), vec2.mul(vec2.rotate(headingDirection, -math.pi/2), 5)), "blue") --- > local direction = BData:getNumber(args.direction) > if direction == nil then return false end 55,56c40 < BData:setVec2(output.headingDirection, headingDirection) < BData:setNumber(output.headingAngle, headingAngle) --- > headingAngle = adjustCornerHeading(headingAngle, direction) 58c42,58 < coroutine.yield("running") --- > local groundAngle = headingAngle - (math.pi / 2) > mcontroller.controlApproachVelocity(vec2.withAngle(groundAngle, moveSpeed), 50) > > local moveDirection = vec2.rotate({direction, 0}, headingAngle) > mcontroller.controlApproachVelocityAlongAngle(math.atan(moveDirection[2], moveDirection[1]), moveSpeed, 2000) > > BData:setVec2(output.headingDirection, vec2.withAngle(headingAngle)) > BData:setNumber(output.headingAngle, headingAngle) > > mcontroller.controlParameters({ > gravityEnabled = false > }) > > coroutine.yield("running") > else > break > end 75,79d74 < local groundDirection = findGroundDirection() < if groundDirection == nil then return false end < < local ground, headingDirection, headingAngle = setGroundDirection(groundDirection) < 82c77,78 < if not findGroundDirection() then break end --- > local groundDirection = findGroundDirection() > if not groundDirection then break end 85,95c81,82 < if output.forwardAngle then < for i = 1, args.rotationStepsPerUpdate do < local newDirection = groundSlopeDirection(headingAngle) < if newDirection then < headingDirection = newDirection < local angleDiff = interp.angleDiff(headingAngle, math.atan(headingDirection[2], headingDirection[1])) < headingAngle = interp.linear(args.rotationRate, headingAngle, headingAngle + angleDiff) < ground = vec2.rotate(headingDirection, -math.pi/2) < end < end < end --- > local headingAngle = (math.atan(groundDirection[2], groundDirection[1]) + math.pi / 2) % (math.pi * 2) > headingAngle = adjustCornerHeading(headingAngle, mcontroller.facingDirection()) 97c84 < BData:setVec2(output.groundDirection, ground) --- > BData:setVec2(output.groundDirection, groundDirection) 106c93 < BData:setVec2(output.groundDirection, {0,1}) --- > BData:setVec2(output.groundDirection, {0,-1}) 112,124c99,107 < function groundSlopeDirection(headingAngle) < local bounds = mcontroller.boundBox() < < local leftLine = poly.translate(poly.rotate({{bounds[1] - 0.1, bounds[4] - 0.5}, {bounds[1] - 0.1, bounds[2] - 1}}, headingAngle), mcontroller.position()) < local rightLine = poly.translate(poly.rotate({{bounds[3] + 0.1, bounds[4] - 0.5}, {bounds[3] + 0.1, bounds[2] - 1}}, headingAngle), mcontroller.position()) < < world.debugLine(leftLine[1], leftLine[2], "red") < world.debugLine(rightLine[1], rightLine[2], "red") < < local leftIntersect = world.lineCollision(leftLine[1], leftLine[2]) or leftLine[2] < local rightIntersect = world.lineCollision(rightLine[1], rightLine[2]) or rightLine[2] < if leftIntersect and rightIntersect then < return vec2.norm(world.distance(rightIntersect, leftIntersect)) --- > function adjustCornerHeading(headingAngle, direction) > -- adjust direction for concave corners > local adjustment = 0 > for a = 0, math.pi, math.pi / 4 do > local testPos = vec2.add(mcontroller.position(), vec2.rotate({direction * 0.25, 0}, headingAngle + (direction * a))) > adjustment = direction * a > if not world.polyCollision(poly.translate(poly.scale(mcontroller.collisionPoly(), 1.0), testPos)) then > break > end 126c109 < end --- > headingAngle = headingAngle + adjustment 128,131c111,121 < function setGroundDirection(ground) < local headingDirection = {-ground[2], ground[1]} < local headingAngle = math.atan(headingDirection[2], headingDirection[1]) < return ground, headingDirection, headingAngle --- > -- adjust direction for convex corners > adjustment = 0 > for a = 0, -math.pi, -math.pi / 4 do > local testPos = vec2.add(mcontroller.position(), vec2.rotate({direction * 0.25, 0}, headingAngle + (direction * a))) > if world.polyCollision(poly.translate(poly.scale(mcontroller.collisionPoly(), 1.0), testPos)) then > break > end > adjustment = direction * a > end > headingAngle = headingAngle + adjustment > return headingAngle 135,142c125,131 < local bounds = mcontroller.boundBox() < local groundRect = {bounds[1], bounds[2] - config.getParameter("crawlMaxGroundDistance", 0.5), bounds[3], bounds[2]} < local directions = {{0,-1}, {1,0}, {0,1}, {-1,0}} < for i = 1, 4 do < local angle = (i - 1) * math.pi/2 < if world.rectTileCollision(rect.translate(rect.rotate(groundRect, angle), mcontroller.position())) then < return directions[i] < end --- > for i = 0, 7 do > local angle = (i * math.pi / 4) - math.pi / 2 > local collisionSet = i == 1 and self.platformCollisionSet or self.normalCollisionSet > local testPos = vec2.add(mcontroller.position(), vec2.withAngle(angle, 0.25)) > if world.polyCollision(poly.translate(mcontroller.collisionPoly(), testPos), nil, collisionSet) then > return vec2.withAngle(angle, 1.0) > end 144c133 < end --- > end \ No newline at end of file scripts\actions\entity.lua 126c126,138 < return entity.entityInSight(entityId) --- > local inSight = entity.entityInSight(entityId) > if not inSight then > return false > end > > if not config.getParameter("seeThroughLiquid", true) then > local liquid = world.liquidAlongLine(entity.position(), world.entityPosition(entityId)) > if #liquid > 0 then > return false > end > end > > return true scripts\actions\movement.lua 15a16 > direction = util.toDirection(direction) 20c21 < npc.setAimPosition(vec2.add(mcontroller.position(), {direction, -1})) --- > npc.setAimPosition(vec2.add(mcontroller.position(), {direction * 5, -5})) 274a276 > runSpeed = nil, 284c286,291 < local pather = PathMover:new({run = BData:getBool(args.run), pathOptions = args.pathOptions}) --- > local options = { > run = BData:getBool(args.run), > pathOptions = args.pathOptions, > movementParameters = {runSpeed = BData:getNumber(args.runSpeed)} > } > local pather = PathMover:new(options) scripts\actions\npc.lua 131a132,137 > function endPrimaryFire(args, output) > self.primaryFire = false > npc.endPrimaryFire() > return true > end > 328c334 < if entity.damageTeam().team == 1 then --- > if entity.damageTeam().type ~= "pvp" and entity.damageTeam().team == 1 then 336c342 < if world.entityType(entityId) == "player" and contains(attackOnSight, entityId) then --- > if entity.damageTeam().type ~= "pvp" and world.entityType(entityId) == "player" and contains(attackOnSight, entityId) then 386c392 < if world.entityType(notification.targetId) == "player" then --- > if entity.damageTeam().type ~= "pvp" and world.entityType(notification.targetId) == "player" then 395c401 < if world.isNpc(damageSource, entity.damageTeam().team) then --- > if entity.damageTeam().type ~= "pvp" and world.isNpc(damageSource, entity.damageTeam().team) then scripts\actions\sensor.lua 107a108,120 > > -- param startLine > -- param endLine > function lineLiquidCollision(args, output) > args = parseArgs(args, { > startLine = nil, > endLine = nil > }) > > local startLine, endLine = BData:getPosition(args.startLine), BData:getPosition(args.endLine) > local blocks = world.liquidAlongLine(startLine, endLine) > return #blocks > 0 > end \ No newline at end of file scripts\actions\monsters\farmable.lua 37,39c37 < if world.time() - storage.lastHarvest < storage.harvestTime then < return false < else --- > if world.time() - storage.lastHarvest >= storage.harvestTime then 40a39,40 > else > return false scripts\companions\player.lua 477a478,485 > if upgrade.exclusiveQuests then > for _,exclusive in pairs(upgrade.exclusiveQuests) do > if player.hasQuest(exclusive) then > return > end > end > end > ships\licenses.config 7c7,8 < "itemDelay" : 8 --- > "exclusiveQuests" : [ "illegalshipupgrade1" ], > "itemDelay" : 4 13c14,15 < "itemDelay" : 8 --- > "exclusiveQuests" : [ "illegalshipupgrade2" ], > "itemDelay" : 4 19c21,22 < "itemDelay" : 8 --- > "exclusiveQuests" : [ "illegalshipupgrade3" ], > "itemDelay" : 4 25c28,29 < "itemDelay" : 8 --- > "exclusiveQuests" : [ "illegalshipupgrade4" ], > "itemDelay" : 4 31c35,36 < "itemDelay" : 8 --- > "exclusiveQuests" : [ "illegalshipupgrade5" ], > "itemDelay" : 4 tech\distortionsphere\spikesphere.lua 91d90 < world.debugLine(mcontroller.position(), vec2.add(mcontroller.position(), vec2.mul(moveDirection, 3)), "yellow") 128,132c127,128 < local bounds = mcontroller.boundBox() < local groundRect = {bounds[1], bounds[2] - config.getParameter("groundStickDistance", 0.25), bounds[3], bounds[2]} < local directions = {{0,-1}, {1,0}, {0,1}, {-1,0}} < for i = 1, 4 do < local angle = (i - 1) * math.pi / 2 --- > for i = 0, 3 do > local angle = (i * math.pi / 2) - math.pi / 2 134,135c130,132 < if world.rectTileCollision(rect.translate(rect.rotate(groundRect, angle), mcontroller.position()), collisionSet) then < return directions[i] --- > local testPos = vec2.add(mcontroller.position(), vec2.withAngle(angle, 0.25)) > if world.polyCollision(poly.translate(mcontroller.collisionPoly(), testPos), nil, collisionSet) then > return vec2.withAngle(angle, 1.0) 138c135 < end --- > end \ No newline at end of file tiles\materials\jellyblock.material 15c15 < "health" : 10, --- > "health" : 4, 26c26 < "radiantLight" : [55, 90, 80] --- > "radiantLight" : [66, 107, 95] tiles\materials\tentacleblock.material 18c18 < "variants" : 25, --- > "variants" : 8, tilesets\packed\miscellaneous.json 8c8 < "tilecount":19, --- > "tilecount":20, 77a78,83 > "19": > { > "\/\/description":"Underwater Boundary", > "\/\/shortdescription":"Light-transparent invisible wall that players cannot climb. Allows liquids through.", > "material":"metamaterial:underwaterBoundary" > }, 176a183,186 > "19": > { > "image":"..\/..\/..\/..\/tiled\/packed\/miscellaneous\/19.png" > }, 211c221 < } \ No newline at end of file --- > } tilesets\packed\objects-by-category\crafting.json 375d374 < "//description" : "Can be used to forge steel and other strong alloys into useful equipment.", 377,381c376 < "//shortdescription" : "^orange;Metalwork Station^white;", < "imagePositionX" : "-8", < "imagePositionY" : "0", < "object" : "metalworkstation", < "tilesetDirection" : "right" --- > "invalid" : "true" 477d471 < "//description" : "Can be used to craft all manner of furniture and storage.", 479,483c473 < "//shortdescription" : "^orange;Furniture Table^white;", < "imagePositionX" : "-16", < "imagePositionY" : "0", < "object" : "furnituretable", < "tilesetDirection" : "right" --- > "invalid" : "true" 760c750 < "image" : "../../../../../tiled/packed/objects/metalworkstation.png" --- > "image" : "../../../../../tiled/packed/../packed/invalid.png" 799c789 < "image" : "../../../../../tiled/packed/objects/furnituretable.png" --- > "image" : "../../../../../tiled/packed/../packed/invalid.png" tilesets\packed\objects-by-category\door.json 969c969 < "//description" : "A force field which can only be passed through one way", --- > "//description" : "A force field which can only be passed through one way.", tilesets\packed\objects-by-category\other.json 1647c1647 < "//description" : "Display and easily equip armor sets!", --- > "//description" : "Display and easily equip armour sets!", tilesets\packed\objects-by-colonytag\crafting.json 70d69 < "//description" : "Can be used to craft all manner of furniture and storage.", 72,76c71 < "//shortdescription" : "^orange;Furniture Table^white;", < "imagePositionX" : "-16", < "imagePositionY" : "0", < "object" : "furnituretable", < "tilesetDirection" : "right" --- > "invalid" : "true" 273d267 < "//description" : "Can be used to forge steel and other strong alloys into useful equipment.", 275,279c269 < "//shortdescription" : "^orange;Metalwork Station^white;", < "imagePositionX" : "-8", < "imagePositionY" : "0", < "object" : "metalworkstation", < "tilesetDirection" : "right" --- > "invalid" : "true" 311c301 < "image" : "../../../../../tiled/packed/objects/furnituretable.png" --- > "image" : "../../../../../tiled/packed/../packed/invalid.png" 392c382 < "image" : "../../../../../tiled/packed/objects/metalworkstation.png" --- > "image" : "../../../../../tiled/packed/../packed/invalid.png" tilesets\packed\objects-by-colonytag\door.json 644c644 < "//description" : "A force field which can only be passed through one way", --- > "//description" : "A force field which can only be passed through one way.", tilesets\packed\objects-by-race\generic.json 3097d3096 < "//description" : "Can be used to craft all manner of furniture and storage.", 3099,3103c3098 < "//shortdescription" : "^orange;Furniture Table^white;", < "imagePositionX" : "-16", < "imagePositionY" : "0", < "object" : "furnituretable", < "tilesetDirection" : "right" --- > "invalid" : "true" 4316c4311 < "//description" : "A force field which can only be passed through one way", --- > "//description" : "A force field which can only be passed through one way.", 6914c6909 < "//description" : "Display and easily equip armor sets!", --- > "//description" : "Display and easily equip armour sets!", 13530d13524 < "//description" : "Can be used to forge steel and other strong alloys into useful equipment.", 13532,13536c13526 < "//shortdescription" : "^orange;Metalwork Station^white;", < "imagePositionX" : "-8", < "imagePositionY" : "0", < "object" : "metalworkstation", < "tilesetDirection" : "right" --- > "invalid" : "true" 15964c15954 < "image" : "../../../../../tiled/packed/objects/furnituretable.png" --- > "image" : "../../../../../tiled/packed/../packed/invalid.png" 19672c19662 < "image" : "../../../../../tiled/packed/objects/metalworkstation.png" --- > "image" : "../../../../../tiled/packed/../packed/invalid.png" tilesets\packed\objects-by-type\container.json 1631c1631 < "//description" : "Display and easily equip armor sets!", --- > "//description" : "Display and easily equip armour sets!", tilesets\packed\objects-by-type\physics.json 91c91 < "//description" : "A force field which can only be passed through one way", --- > "//description" : "A force field which can only be passed through one way.", treasure\common.treasurepools 1567a1568,1584 > ], > > // ================================ > // End Game Treasure > // ================================ > > "endTreasure" : [ > [0, { > "fill" : [ > {"item" : ["money", 25000]}, > {"item" : "finalpostcard-codex" }, > {"pool" : "valuableTreasure"}, > {"pool" : "valuableTreasure"}, > {"pool" : "valuableTreasure"}, > {"pool" : "valuableTreasure"} > ] > }] treasure\fossils.treasurepools 8,15c8,10 < {"weight" : 0.82, "pool" : "simplefossil"}, < < {"weight" : 0.03, "pool" : "apexfossil"}, < {"weight" : 0.03, "pool" : "avianfossil"}, < {"weight" : 0.03, "pool" : "floranfossil"}, < {"weight" : 0.03, "pool" : "glitchfossil"}, < {"weight" : 0.03, "pool" : "humanfossil"}, < {"weight" : 0.03, "pool" : "hylotlfossil"} --- > {"weight" : 0.4, "pool" : "smallfossil"}, > {"weight" : 0.35, "pool" : "humanoidfossil"}, > {"weight" : 0.25, "pool" : "largefossil"} 23,30c18,20 < {"weight" : 0.52, "pool" : "simplefossil"}, < < {"weight" : 0.08, "pool" : "apexfossil"}, < {"weight" : 0.08, "pool" : "avianfossil"}, < {"weight" : 0.08, "pool" : "floranfossil"}, < {"weight" : 0.08, "pool" : "glitchfossil"}, < {"weight" : 0.08, "pool" : "humanfossil"}, < {"weight" : 0.08, "pool" : "hylotlfossil"} --- > {"weight" : 0.4, "pool" : "smallfossil"}, > {"weight" : 0.35, "pool" : "humanoidfossil"}, > {"weight" : 0.25, "pool" : "largefossil"} 67c57 < "simplefossil" : [ --- > "smallfossil" : [ 70,71c60,69 < {"weight" : 0.750, "item" : "ammonitefossil"}, < {"weight" : 0.25, "item" : "trilobitefossil"} --- > {"weight" : 0.1, "item" : "amberfossil"}, > {"weight" : 0.1, "item" : "ammonitefossil"}, > {"weight" : 0.1, "item" : "eggfossil"}, > {"weight" : 0.1, "item" : "fernfossil"}, > {"weight" : 0.1, "item" : "fishfossil"}, > {"weight" : 0.1, "item" : "mysteriousalienfossil"}, > {"weight" : 0.1, "item" : "penguinfossil"}, > {"weight" : 0.1, "item" : "sabertoothfossil"}, > {"weight" : 0.1, "item" : "trackfossil"}, > {"weight" : 0.1, "item" : "trilobitefossil"} 76c74 < "apexfossil" : [ --- > "humanoidfossil" : [ 81,88c79 < {"weight" : 0.30, "item" : "apexfossil3"} < ] < }] < ], < < "avianfossil" : [ < [1, { < "pool" : [ --- > {"weight" : 0.30, "item" : "apexfossil3"}, 91,98c82 < {"weight" : 0.30, "item" : "avianfossil3"} < ] < }] < ], < < "floranfossil" : [ < [1, { < "pool" : [ --- > {"weight" : 0.30, "item" : "avianfossil3"}, 101,108c85 < {"weight" : 0.30, "item" : "floranfossil3"} < ] < }] < ], < < "glitchfossil" : [ < [1, { < "pool" : [ --- > {"weight" : 0.30, "item" : "floranfossil3"}, 111,118c88 < {"weight" : 0.30, "item" : "glitchfossil3"} < ] < }] < ], < < "humanfossil" : [ < [1, { < "pool" : [ --- > {"weight" : 0.30, "item" : "glitchfossil3"}, 121c91,106 < {"weight" : 0.30, "item" : "humanfossil3"} --- > {"weight" : 0.30, "item" : "humanfossil3"}, > {"weight" : 0.40, "item" : "hylotlfossil1"}, > {"weight" : 0.30, "item" : "hylotlfossil2"}, > {"weight" : 0.30, "item" : "hylotlfossil3"}, > {"weight" : 0.40, "item" : "alpacafossil1"}, > {"weight" : 0.30, "item" : "alpacafossil2"}, > {"weight" : 0.30, "item" : "alpacafossil3"}, > {"weight" : 0.40, "item" : "avioscalefossil1"}, > {"weight" : 0.30, "item" : "avioscalefossil2"}, > {"weight" : 0.30, "item" : "avioscalefossil3"}, > {"weight" : 0.40, "item" : "froggfossil1"}, > {"weight" : 0.30, "item" : "froggfossil2"}, > {"weight" : 0.30, "item" : "froggfossil3"}, > {"weight" : 0.40, "item" : "mysteriousfossil1"}, > {"weight" : 0.30, "item" : "mysteriousfossil2"}, > {"weight" : 0.30, "item" : "mysteriousfossil3"} 126,131c111,128 < "hylotlfossil" : [ < [1, { < "pool" : [ < {"weight" : 0.40, "item" : "hylotlfossil1"}, < {"weight" : 0.30, "item" : "hylotlfossil2"}, < {"weight" : 0.30, "item" : "hylotlfossil3"} --- > "largefossil" : [ > [1, { > "pool" : [ > {"weight" : 0.1, "item" : "ixodoomfossil1"}, > {"weight" : 0.1, "item" : "ixodoomfossil2"}, > {"weight" : 0.1, "item" : "ixodoomfossil3"}, > {"weight" : 0.1, "item" : "ixodoomfossil4"}, > {"weight" : 0.1, "item" : "ixodoomfossil5"}, > {"weight" : 0.1, "item" : "ophidauntfossil1"}, > {"weight" : 0.1, "item" : "ophidauntfossil2"}, > {"weight" : 0.1, "item" : "ophidauntfossil3"}, > {"weight" : 0.1, "item" : "ophidauntfossil4"}, > {"weight" : 0.1, "item" : "ophidauntfossil5"}, > {"weight" : 0.1, "item" : "trexfossil1"}, > {"weight" : 0.1, "item" : "trexfossil2"}, > {"weight" : 0.1, "item" : "trexfossil3"}, > {"weight" : 0.1, "item" : "trexfossil4"}, > {"weight" : 0.1, "item" : "trexfossil5"} vehicles\boat\boat.animation 245c245 < "burstCount" : 30, --- > "burstCount" : 20, 252c252 < "burstCount" : 30, --- > "burstCount" : 20, 259c259 < "burstCount" : 30, --- > "burstCount" : 20, vehicles\boat\boat.vehicle 50c50 < "targetMoveSpeed" : 30, --- > "targetMoveSpeed" : 35, 52c52 < "moveControlForce" : 100, --- > "moveControlForce" : 250, 60c60 < "speedRotationMultiplier": 0.01, --- > "speedRotationMultiplier": 0.006, 72c72 < "liquidFriction" : 30, --- > "liquidFriction" : 20, 77c77 < "liquidFriction" : 40, --- > "liquidFriction" : 25, 82c82 < "liquidFriction" : 50, --- > "liquidFriction" : 30, 98,101d97 < "poopdeck" : { < "collision" : [ [-4.5, 0.5], [0, 0.5], [-0.75, 1.75], [-4.5, 1.75] ], < "attachToPart" : "seat" < }, 103c99 < "collision" : [ [-0.5, 0.0], [4.5, 0.0], [4.5, 1.0], [-0.5, 1.0] ], --- > "collision" : [ [-4.5, 0.0], [4.5, 0.0], [4.5, 1.0], [-4.5, 1.0] ],