User:Gat235/sandbox

From Noita Wiki
Jump to navigation Jump to search

Material Cargo Table

Template:Infobox material will declare the Cargo table. Cargo table would store:

  • Name - String
  • ID - String
  • Image - File
  • Type - String
  • Biome - String
  • Density - Float
  • Durability - Float
  • Hardness - Float
  • Evaporates - String
  • Freezes - String
  • Condenses - String
  • Stain-effect - String
  • Ingest-effect - String
  • Submerge-effect - String
  • Tags - String

Alchemy Cargo Table

All Alchemy reactions and transmutations would be stored on Alchemy Information Table, with each row being stored into the Cargo table. New reactions and existing ones can be added and edited as needed by modifying that page. This would effectively create an editable Cargo table.

Alchemy Table

Table Header

Can reuse/modify Template:MaterialReactions/start. Parameters that will be stored in the Cargo table.

  • NOTE: Are there any other parameters that need be stored?
    • Additional parameters are needed, undefined for now.
  • NOTE: Are there reactions with more than three reagents/products?
    • Yes, some reactions have unique inputs/outputs.
{| class="wikitable" width="100%"
! Reagent 1 || Reagent 2 || Reagent 3
! Product 1 || Product 2 || Product 3
! Reaction Rate

Table Rows

Uses a template to convert inputs into a table row format and stores it in the Cargo table. This template will also declare the Cargo table. Can reuse/modify Template:MaterialReactions/row. Takes reagents, products, rate as parameters. The template will add link brackets around the inputs.

  • NOTE: Should the reagents/products be put together, then split with an #explode function? Or have them be inputted separately, like reagent1, reagent2, etc.?
    • Inputted as groups, separated by commas. #explode can be used for Cargo storage.
  • NOTE: Should duplicate products be listed twice? Example on Copper shows that Copper + Brass + Water produces Silver + Smoke + Smoke, with Smoke appearing twice.
    • Duplicate reagents/products are intended, since it is accurate to how much material is used/created.
  • NOTE: Should reagent/product columns have different background colors to easier distinguish them apart? If so, what colors?
{{AlchemyRow|reagents=|products=|rate=}}

Within the template:

|-
| [[{{#explode:{{{reagents}}}|,|0}}]] || [[{{#explode:{{{reagents}}}|,|1}}]] || [[{{#explode:{{{reagents}}}|,|2}}]]
| [[{{#explode:{{{products}}}|,|0}}]] || [[{{#explode:{{{products}}}|,|1}}]] || [[{{#explode:{{{products}}}|,|2}}]]
| {{{rate}}}

Table End

Can reuse Template:MaterialReactions/end.

|}

Example

{| class="wikitable" width="100%"
! Reagent 1 || Reagent 2 || Reagent 3
! Product 1 || Product 2 || Product 3
! Reaction Rate
{{AlchemyRow|reagents=Copper,Brass,Water|products=Silver,Smoke,Smoke|rate=100}}
|}

Would appear as:

Reagent 1 Reagent 2 Reagent 3 Product 1 Product 2 Product 3 Reaction Rate
Copper Brass Water Silver Smoke Smoke 100

Reactions Table

A template that uses a CargoQuery to search the Alchemy Cargo table for all reactions including the specified reagent. Concatenates the reagents and products to fit in one column instead of three each.

  • NOTE: Should searching in the reverse be included? i.e. All reactions that result in Copper as a product.
    • Specifying a material should search in both reagents and products.
  • NOTE: Would searching for multiple materials be needed? i.e All reactions that include Copper AND Water as reagents.
    • Unnecessary for now.
  • TO-DO: Find a way to incorporate Template:MaterialReactions/tag results as well. Possibly pull the tag data from the Material Cargo and work from there. Might not be possible with multiple material searches, or will have to be excluded when doing so.

Example

{{ReactionTable|material=Copper}}

Would appear as:

Reagents Products Reaction Rate
Copper + Brass + Water Silver + Smoke + Smoke 100

(+ all the other Alchemical reactions that include Copper as a reagent and product)


Material/Alchemy Cargo WIP

Material List with ID

Compiled from vexx32's Materials Spreadsheet Google Doc

Material List
*[[Acid]] - <code>acid</code>
*[[Flammable Gas]] - <code>acid_gas</code>
*[[Flammable Gas]] - <code>acid_gas_static</code>
*[[Air]] - <code>air</code>
*[[Whiskey]] - <code>alcohol</code>
*[[Whiskey Fumes]] - <code>alcohol_gas</code>
*[[Aluminium]] - <code>aluminium</code>
*[[Molten Aluminium]] - <code>aluminium_molten</code>
*[[Aluminium]] - <code>aluminium_oxide</code>
*[[Molten Aluminium]] - <code>aluminium_oxide_molten</code>
*[[Aluminium]] - <code>aluminium_robot</code>
*[[Molten Aluminium]] - <code>aluminium_robot_molten</code>
*[[Blood]] - <code>blood</code>
*[[Freezing Liquid]] - <code>blood_cold</code>
*[[Freezing Vapour]] - <code>blood_cold_vapour</code>
*[[Blood]] - <code>blood_fading</code>
*[[Blood]] - <code>blood_fading_slow</code>
*[[Fungus Blood]] - <code>blood_fungi</code>
*[[Blood]] - <code>blood_thick</code>
*[[Worm Blood]] - <code>blood_worm</code>
*[[Ruby]] - <code>bloodgold_box2d</code>
*[[Blue Fungus]] - <code>bluefungi_static</code>
*[[Bone Dust]] - <code>bone</code>
*[[Bone]] - <code>bone_box2d</code>
*[[Bone Wall]] - <code>bone_static</code>
*[[Brass]] - <code>brass</code>
*[[Molten Brass]] - <code>brass_molten</code>
*[[Brick Wall]] - <code>brick</code>
*[[Burning Powder]] - <code>burning_powder</code>
*[[Evergreen Seed]] - <code>bush_seed</code>
*[[Wood]] - <code>cactus</code>
*[[Seed]] - <code>ceiling_plant_material</code>
*[[Cement]] - <code>cement</code>
*[[Cheese]] - <code>cheese_static</code>
*[[]] - <code>cloth_box2d</code>
*[[Cloud]] - <code>cloud</code>
*[[Blood Mist]] - <code>cloud_blood</code>
*[[Cloud]] - <code>cloud_lighter</code>
*[[Toxic Mist]] - <code>cloud_radioactive</code>
*[[Slime Mist]] - <code>cloud_slime</code>
*[[Coal]] - <code>coal</code>
*[[Coal Vein]] - <code>coal_static</code>
*[[Cocoon]] - <code>cocoon_box2d</code>
*[[Collapsed Concrete]] - <code>concrete_collapsed</code>
*[[Concrete]] - <code>concrete_sand</code>
*[[Concrete]] - <code>concrete_static</code>
*[[Copper]] - <code>copper</code>
*[[Molten Copper]] - <code>copper_molten</code>
*[[Corrupted Rock]] - <code>corruption_static</code>
*[[Creepy Liquid]] - <code>creepy_liquid</code>
*[[Brick Wall]] - <code>creepy_liquid_emitter</code>
*[[Crystal]] - <code>crystal</code>
*[[Crystal]] - <code>crystal_magic</code>
*[[Purple Crystal]] - <code>crystal_purple</code>
*[[Crystal]] - <code>crystal_solid</code>
*[[Greed-Cursed Liquid]] - <code>cursed_liquid</code>
*[[Diamond]] - <code>diamond</code>
*[[Hell Slime]] - <code>endslime</code>
*[[Hell Slime]] - <code>endslime_blood</code>
*[[Hell Slime]] - <code>endslime_static</code>
*[[Dirt]] - <code>explosion_dirt</code>
*[[Fire]] - <code>fire</code>
*[[Fire]] - <code>fire_blue</code>
*[[Fire]] - <code>flame</code>
*[[Fungal Gas]] - <code>fungal_gas</code>
*[[]] - <code>fungal_shift_particle_fx</code>
*[[Weird Fungus]] - <code>fungi</code>
*[[Mystery Fungus]] - <code>fungi_creeping</code>
*[[Fungus]] - <code>fungi_creeping_secret</code>
*[[Fungus]] - <code>fungi_green</code>
*[[Fungal Soil]] - <code>fungisoil</code>
*[[Fungus]] - <code>fungus_loose</code>
*[[Fungus]] - <code>fungus_loose_green</code>
*[[Weird Fungus]] - <code>fungus_loose_trippy</code>
*[[Fungal Soil]] - <code>fungus_powder</code>
*[[Fungal Soil]] - <code>fungus_powder_bad</code>
*[[Bomb]] - <code>fuse</code>
*[[Bomb]] - <code>fuse_bright</code>
*[[Holy Matter]] - <code>fuse_holy</code>
*[[Tnt]] - <code>fuse_tnt</code>
*[[Gem]] - <code>gem_box2d</code>
*[[Gem]] - <code>gem_box2d_green</code>
*[[Turquoise Gemstone]] - <code>gem_box2d_opal</code>
*[[Gem]] - <code>gem_box2d_orange</code>
*[[Gem]] - <code>gem_box2d_pink</code>
*[[Gem]] - <code>gem_box2d_red</code>
*[[Gem]] - <code>gem_box2d_red_float</code>
*[[Turquoise Gemstone]] - <code>gem_box2d_turquoise</code>
*[[]] - <code>gem_box2d_white</code>
*[[Gem]] - <code>gem_box2d_yellow_sun</code>
*[[Glass]] - <code>glass</code>
*[[Glass]] - <code>glass_box2d</code>
*[[Brittle Glass]] - <code>glass_brittle</code>
*[[Glass]] - <code>glass_broken</code>
*[[Molten Glass]] - <code>glass_broken_molten</code>
*[[Tempered Glass]] - <code>glass_liquidcave</code>
*[[Molten Glass]] - <code>glass_molten</code>
*[[Glass]] - <code>glass_static</code>
*[[Glowing Fungal Spore]] - <code>glowshroom</code>
*[[Glowing Stone]] - <code>glowstone</code>
*[[Glowing Stone]] - <code>glowstone_altar</code>
*[[Glowing Stone]] - <code>glowstone_altar_hdr</code>
*[[Glowing Stone]] - <code>glowstone_potion</code>
*[[Glue]] - <code>glue</code>
*[[Gold]] - <code>gold</code>
*[[Gold]] - <code>gold_b2</code>
*[[Gold]] - <code>gold_box2d</code>
*[[Molten Gold]] - <code>gold_molten</code>
*[[Toxic Gold]] - <code>gold_radioactive</code>
*[[Gold Vein]] - <code>gold_static</code>
*[[Vibrant Gold Vein]] - <code>gold_static_dark</code>
*[[Toxic Gold]] - <code>gold_static_radioactive</code>
*[[Grass]] - <code>grass</code>
*[[Grass]] - <code>grass_dark</code>
*[[Grass]] - <code>grass_dry</code>
*[[Ice]] - <code>grass_ice</code>
*[[Fungal Matter]] - <code>grass_loose</code>
*[[Gunpowder]] - <code>gunpowder</code>
*[[Gunpowder]] - <code>gunpowder_explosive</code>
*[[Gunpowder]] - <code>gunpowder_tnt</code>
*[[Gunpowder]] - <code>gunpowder_unstable</code>
*[[Gunpowder]] - <code>gunpowder_unstable_big</code>
*[[Slimy Meat]] - <code>gunpowder_unstable_boss_limbs</code>
*[[Honey]] - <code>honey</code>
*[[Ice]] - <code>ice</code>
*[[Frozen Acid]] - <code>ice_acid_glass</code>
*[[Frozen Acid]] - <code>ice_acid_static</code>
*[[Ice]] - <code>ice_b2</code>
*[[Frozen Blood]] - <code>ice_blood_glass</code>
*[[Frozen Blood]] - <code>ice_blood_static</code>
*[[Ice]] - <code>ice_ceiling</code>
*[[Ice]] - <code>ice_cold_glass</code>
*[[Ice]] - <code>ice_cold_static</code>
*[[Ice]] - <code>ice_glass</code>
*[[Ice]] - <code>ice_glass_b2</code>
*[[Ice]] - <code>ice_melting_perf_killer</code>
*[[Ice]] - <code>ice_meteor_static</code>
*[[Frozen Poison]] - <code>ice_poison_glass</code>
*[[Frozen Poison]] - <code>ice_poison_static</code>
*[[Toxic Ice]] - <code>ice_radioactive_glass</code>
*[[Toxic Ice]] - <code>ice_radioactive_static</code>
*[[Frozen Slime]] - <code>ice_slime_glass</code>
*[[Frozen Slime]] - <code>ice_slime_static</code>
*[[Ice]] - <code>ice_static</code>
*[[Item]] - <code>item_box2d</code>
*[[Item]] - <code>item_box2d_glass</code>
*[[Meat]] - <code>item_box2d_meat</code>
*[[Lava]] - <code>lava</code>
*[[Volcanic Rock]] - <code>lavarock_static</code>
*[[Volcanic Sand]] - <code>lavasand</code>
*[[Fire]] - <code>liquid_fire</code>
*[[Liquid Fire]] - <code>liquid_fire_weak</code>
*[[Magical Crystal]] - <code>magic_crystal</code>
*[[Magical Crystal]] - <code>magic_crystal_green</code>
*[[Healium]] - <code>magic_gas_hp_regeneration</code>
*[[Gate-Opener]] - <code>magic_liquid</code>
*[[Berserkium]] - <code>magic_liquid_berserk</code>
*[[Pheromone]] - <code>magic_liquid_charm</code>
*[[Levitatium]] - <code>magic_liquid_faster_levitation</code>
*[[Hastium]] - <code>magic_liquid_faster_levitation_and_movement</code>
*[[Healthium]] - <code>magic_liquid_hp_regeneration</code>
*[[Lively Concoction]] - <code>magic_liquid_hp_regeneration_unstable</code>
*[[Invisiblium]] - <code>magic_liquid_invisibility</code>
*[[Concentrated Mana]] - <code>magic_liquid_mana_regeneration</code>
*[[Acceleratium]] - <code>magic_liquid_movement_faster</code>
*[[Polymorphine]] - <code>magic_liquid_polymorph</code>
*[[Ambrosia]] - <code>magic_liquid_protection_all</code>
*[[Chaotic Polymorphine]] - <code>magic_liquid_random_polymorph</code>
*[[Teleportatium]] - <code>magic_liquid_teleportation</code>
*[[Unstable Polymorphine]] - <code>magic_liquid_unstable_polymorph</code>
*[[Unstable Teleportatium]] - <code>magic_liquid_unstable_teleportation</code>
*[[Worm Pheromone]] - <code>magic_liquid_worm_attractor</code>
*[[Flummoxium]] - <code>material_confusion</code>
*[[Ominous Liquid]] - <code>material_darkness</code>
*[[Rainbow]] - <code>material_rainbow</code>
*[[Meat]] - <code>meat</code>
*[[Ambiguous Meat]] - <code>meat_confusion</code>
*[[Cursed Meat]] - <code>meat_cursed</code>
*[[Cursed Meat]] - <code>meat_cursed_dry</code>
*[[Wobbly Meat]] - <code>meat_fast</code>
*[[Frog Meat]] - <code>meat_frog</code>
*[[Fruit Flesh]] - <code>meat_fruit</code>
*[[Meat Of An Innocent Creature]] - <code>meat_helpless</code>
*[[Unstable Meat]] - <code>meat_polymorph</code>
*[[Stinky Meat]] - <code>meat_polymorph_protection</code>
*[[Fruit Flesh]] - <code>meat_pumpkin</code>
*[[Slimy Meat]] - <code>meat_slime</code>
*[[Slimy Cursed Meat]] - <code>meat_slime_cursed</code>
*[[Green Slimy Meat]] - <code>meat_slime_green</code>
*[[Slimy Meat]] - <code>meat_slime_orange</code>
*[[Slimy Meat]] - <code>meat_slime_sand</code>
*[[Ethereal Meat]] - <code>meat_teleport</code>
*[[Weird Meat]] - <code>meat_trippy</code>
*[[Worm Meat]] - <code>meat_worm</code>
*[[Metal]] - <code>metal</code>
*[[Metal]] - <code>metal_chain_nohit</code>
*[[Metal]] - <code>metal_hard</code>
*[[Molten Metal]] - <code>metal_molten</code>
*[[Metal]] - <code>metal_nohit</code>
*[[Molten Metal]] - <code>metal_nohit_molten</code>
*[[Metal]] - <code>metal_prop</code>
*[[Metal]] - <code>metal_prop_loose</code>
*[[Molten Metal]] - <code>metal_prop_molten</code>
*[[Rusted Metal]] - <code>metal_rust</code>
*[[Rusted Metal]] - <code>metal_rust_barrel</code>
*[[Rusted Metal]] - <code>metal_rust_barrel_rust</code>
*[[Molten Metal]] - <code>metal_rust_molten</code>
*[[Rusted Metal]] - <code>metal_rust_rust</code>
*[[Metal Dust]] - <code>metal_sand</code>
*[[Molten Metal]] - <code>metal_sand_molten</code>
*[[Metal]] - <code>metal_wire_nohit</code>
*[[Meteorite]] - <code>meteorite</code>
*[[Meteorite]] - <code>meteorite_crackable</code>
*[[Green Meteorite]] - <code>meteorite_green</code>
*[[Meteorite]] - <code>meteorite_static</code>
*[[Meteorite]] - <code>meteorite_test</code>
*[[Draught of Midas]] - <code>midas</code>
*[[Alchemic Precursor]] - <code>midas_precursor</code>
*[[Monstrous Powder]] - <code>monster_powder_test</code>
*[[Moss]] - <code>moss</code>
*[[Rusty Moss]] - <code>moss_rust</code>
*[[Mud]] - <code>mud</code>
*[[Fungal Spore]] - <code>mushroom</code>
*[[Fungal Spore]] - <code>mushroom_giant_blue</code>
*[[Fungal Spore]] - <code>mushroom_giant_red</code>
*[[Fungal Spore]] - <code>mushroom_seed</code>
*[[Neon Tube]] - <code>neon_tube_blood_red</code>
*[[Neon Tube]] - <code>neon_tube_cyan</code>
*[[Neon Tube]] - <code>neon_tube_purple</code>
*[[Nest]] - <code>nest_box2d</code>
*[[Nest]] - <code>nest_firebug_box2d</code>
*[[Nest]] - <code>nest_static</code>
*[[Oil]] - <code>oil</code>
*[[Guiding Powder]] - <code>orb_powder</code>
*[[Pea Soup]] - <code>pea_soup</code>
*[[Peat]] - <code>peat</code>
*[[Who Knows]] - <code>physics_throw_material_part2</code>
*[[Plant Material]] - <code>plant_material</code>
*[[Seed]] - <code>plant_material_red</code>
*[[Plant Seed]] - <code>plant_seed</code>
*[[Magical Liquid]] - <code>plasma_fading</code>
*[[Magical Liquid]] - <code>plasma_fading_bright</code>
*[[Magical Liquid]] - <code>plasma_fading_green</code>
*[[Magical Liquid]] - <code>plasma_fading_pink</code>
*[[Plastic]] - <code>plastic</code>
*[[Molten Plastic]] - <code>plastic_molten</code>
*[[Plastic]] - <code>plastic_prop</code>
*[[Molten Plastic]] - <code>plastic_prop_molten</code>
*[[Plastic]] - <code>plastic_red</code>
*[[Molten Plastic]] - <code>plastic_red_molten</code>
*[[Poison]] - <code>poison</code>
*[[Poison Gas]] - <code>poison_gas</code>
*[[Excrement]] - <code>poo</code>
*[[Nauseating Gas]] - <code>poo_gas</code>
*[[Rock]] - <code>poop_box2d_hard</code>
*[[Hearty Porridge]] - <code>porridge</code>
*[[Glass]] - <code>potion_glass_box2d</code>
*[[Purifying Powder]] - <code>purifying_powder</code>
*[[Toxic Gas]] - <code>radioactive_gas</code>
*[[Toxic Gas]] - <code>radioactive_gas_static</code>
*[[Toxic Sludge]] - <code>radioactive_liquid</code>
*[[Toxic Sludge]] - <code>radioactive_liquid_fading</code>
*[[Toxic Sludge]] - <code>radioactive_liquid_yellow</code>
*[[Unicorn Farts]] - <code>rainbow_gas</code>
*[[Ratty Powder]] - <code>rat_powder</code>
*[[Rock]] - <code>rock_box2d</code>
*[[Rock]] - <code>rock_box2d</code>
*[[Rock]] - <code>rock_box2d_hard</code>
*[[Rock]] - <code>rock_box2d_nohit</code>
*[[Dense Rock]] - <code>rock_box2d_nohit_hard</code>
*[[Eroding Rock]] - <code>rock_eroding</code>
*[[Dense Rock]] - <code>rock_hard</code>
*[[Extremely Dense Rock]] - <code>rock_hard_border</code>
*[[Rock]] - <code>rock_loose</code>
*[[Magic Wall]] - <code>rock_magic_bottom</code>
*[[Magic Gate]] - <code>rock_magic_gate</code>
*[[Rock]] - <code>rock_static</code>
*[[Rock]] - <code>rock_static_box2d</code>
*[[Cursed Rock]] - <code>rock_static_cursed</code>
*[[Greed-Cursed Rock]] - <code>rock_static_cursed_green</code>
*[[Fungal Soil]] - <code>rock_static_fungal</code>
*[[Glowing Matter]] - <code>rock_static_glow</code>
*[[Grey Rock]] - <code>rock_static_grey</code>
*[[Rock]] - <code>rock_static_intro</code>
*[[Rock]] - <code>rock_static_intro_breakable</code>
*[[Rock]] - <code>rock_static_noedge</code>
*[[Poisonous Rock]] - <code>rock_static_poison</code>
*[[Rock]] - <code>rock_static_purple</code>
*[[Toxic Rock]] - <code>rock_static_radioactive</code>
*[[Rock]] - <code>rock_static_trip_secret</code>
*[[Rock]] - <code>rock_static_trip_secret2</code>
*[[Damp Rock]] - <code>rock_static_wet</code>
*[[Vault Rock]] - <code>rock_vault</code>
*[[Smoke]] - <code>rocket_particles</code>
*[[Vine]] - <code>root</code>
*[[Vine]] - <code>root_growth</code>
*[[Rotten Meat]] - <code>rotten_meat</code>
*[[Toxic Meat]] - <code>rotten_meat_radioactive</code>
*[[Rusted Metal]] - <code>rust_static</code>
*[[Salt]] - <code>salt</code>
*[[Sand]] - <code>sand</code>
*[[Blue Sand]] - <code>sand_blue</code>
*[[Herb]] - <code>sand_herb</code>
*[[Funky Vapour]] - <code>sand_herb_vapour</code>
*[[Sand]] - <code>sand_petrify</code>
*[[Ground]] - <code>sand_static</code>
*[[Granite Ground]] - <code>sand_static_bright</code>
*[[Lush Ground]] - <code>sand_static_rainforest</code>
*[[Lush Ground]] - <code>sand_static_rainforest_dark</code>
*[[Rusty Ground]] - <code>sand_static_red</code>
*[[Sand]] - <code>sand_surface</code>
*[[Sandstone]] - <code>sandstone</code>
*[[Sandstone]] - <code>sandstone_surface</code>
*[[Fungal Soil]] - <code>shock_powder</code>
*[[Silver]] - <code>silver</code>
*[[Molten Silver]] - <code>silver_molten</code>
*[[Sima]] - <code>sima</code>
*[[Hell Rock]] - <code>skullrock</code>
*[[Slime]] - <code>slime</code>
*[[Slime]] - <code>slime_green</code>
*[[Slime]] - <code>slime_static</code>
*[[Slime]] - <code>slime_yellow</code>
*[[Slush]] - <code>slush</code>
*[[Smoke]] - <code>smoke</code>
*[[Smoke]] - <code>smoke_explosion</code>
*[[Smoke]] - <code>smoke_magic</code>
*[[Smoke]] - <code>smoke_static</code>
*[[Snow]] - <code>snow</code>
*[[Snow]] - <code>snow_b2</code>
*[[Packed Snow]] - <code>snow_static</code>
*[[Snow]] - <code>snow_sticky</code>
*[[Frozen Rock]] - <code>snowrock_static</code>
*[[Sodium]] - <code>sodium</code>
*[[Wet Sodium]] - <code>sodium_unstable</code>
*[[Soil]] - <code>soil</code>
*[[Barren Soil]] - <code>soil_dark</code>
*[[Barren Soil]] - <code>soil_dead</code>
*[[Soil]] - <code>soil_lush</code>
*[[Soil]] - <code>soil_lush_dark</code>
*[[Spark]] - <code>spark</code>
*[[Spark]] - <code>spark_blue</code>
*[[Spark]] - <code>spark_blue_dark</code>
*[[Electric Spark]] - <code>spark_electric</code>
*[[Spark]] - <code>spark_green</code>
*[[Spark]] - <code>spark_green_bright</code>
*[[Spark]] - <code>spark_player</code>
*[[Spark]] - <code>spark_purple</code>
*[[Spark]] - <code>spark_purple_bright</code>
*[[Spark]] - <code>spark_red</code>
*[[Spark]] - <code>spark_red_bright</code>
*[[Spark]] - <code>spark_teal</code>
*[[Spark]] - <code>spark_white</code>
*[[Spark]] - <code>spark_white_bright</code>
*[[Spark]] - <code>spark_yellow</code>
*[[Seed]] - <code>spore</code>
*[[Blue Fungus]] - <code>spore_pod_stalk</code>
*[[Steam]] - <code>steam</code>
*[[Steam]] - <code>steam_trailer</code>
*[[Steel]] - <code>steel</code>
*[[Dense Steel]] - <code>steel_grey_static</code>
*[[Molten Metal]] - <code>steel_molten</code>
*[[Rusted Steel]] - <code>steel_rust</code>
*[[Molten Steel]] - <code>steel_rust_molten</code>
*[[Rusted Steel]] - <code>steel_rusted_no_holes</code>
*[[Steel]] - <code>steel_sand</code>
*[[Steel]] - <code>steel_static</code>
*[[Molten Steel]] - <code>steel_static_molten</code>
*[[Dense Steel]] - <code>steel_static_strong</code>
*[[Hardened Steel]] - <code>steel_static_unmeltable</code>
*[[Frozen Steel]] - <code>steelfrost_static</code>
*[[Mossy Steel]] - <code>steelmoss_slanted</code>
*[[Molten Steel]] - <code>steelmoss_slanted_molten</code>
*[[Rusted Steel]] - <code>steelmoss_static</code>
*[[Molten Steel]] - <code>steelmoss_static_molten</code>
*[[Metal Pipe]] - <code>steelpipe_static</code>
*[[Smoking Steel]] - <code>steelsmoke_static</code>
*[[Molten Steel]] - <code>steelsmoke_static_molten</code>
*[[Sulphur]] - <code>sulphur</code>
*[[Sulphur]] - <code>sulphur_box2d</code>
*[[Swamp]] - <code>swamp</code>
*[[Brickwork]] - <code>templebrick_box2d</code>
*[[Diamond Brickwork]] - <code>templebrick_diamond_static</code>
*[[Fool's Gold]] - <code>templebrick_golden_static</code>
*[[Mossy Brickwork]] - <code>templebrick_moss_static</code>
*[[Brickwork]] - <code>templebrick_noedge_static</code>
*[[Brickwork]] - <code>templebrick_red</code>
*[[Brickwork]] - <code>templebrick_static</code>
*[[Brickwork]] - <code>templebrick_static_broken</code>
*[[Ruined Brick Wall]] - <code>templebrick_static_ruined</code>
*[[Brickwork]] - <code>templebrick_static_soft</code>
*[[Brickwork]] - <code>templebrick_thick_static</code>
*[[Brickwork]] - <code>templebrick_thick_static_noedge</code>
*[[Brickwork]] - <code>templebrickdark_static</code>
*[[Brickwork]] - <code>templerock_soft</code>
*[[Brickwork]] - <code>templerock_static</code>
*[[Brickwork]] - <code>templeslab_crumbling_static</code>
*[[Brickwork]] - <code>templeslab_static</code>
*[[Hell Rock]] - <code>the_end</code>
*[[Tnt]] - <code>tnt</code>
*[[Tnt]] - <code>tnt_static</code>
*[[Text]] - <code>trailer_text</code>
*[[Neon Tube]] - <code>tube_physics</code>
*[[Neon Tube]] - <code>tubematerial</code>
*[[Urine]] - <code>urine</code>
*[[Vine]] - <code>vine</code>
*[[Void Liquid]] - <code>void_liquid</code>
*[[Vomit]] - <code>vomit</code>
*[[Water]] - <code>water</code>
*[[Water]] - <code>water_fading</code>
*[[Chilly Water]] - <code>water_ice</code>
*[[Brine]] - <code>water_salt</code>
*[[Water]] - <code>water_static</code>
*[[Swamp]] - <code>water_swamp</code>
*[[Water]] - <code>water_temp</code>
*[[Rock]] - <code>waterrock</code>
*[[Wax]] - <code>wax</code>
*[[Wax]] - <code>wax_b2</code>
*[[Molten Wax]] - <code>wax_molten</code>
*[[Odd Brickwork]] - <code>wizardstone</code>
*[[Wood]] - <code>wood</code>
*[[Wood]] - <code>wood_burns_forever</code>
*[[Wood]] - <code>wood_loose</code>
*[[Wood]] - <code>wood_player</code>
*[[Wood]] - <code>wood_player_b2</code>
*[[Wood]] - <code>wood_player_b2_vertical</code>
*[[Wood]] - <code>wood_prop</code>
*[[Tough Wood]] - <code>wood_prop_durable</code>
*[[Wood]] - <code>wood_prop_noplayerhit</code>
*[[Wood]] - <code>wood_static</code>
*[[Pressurized Wood]] - <code>wood_static_gas</code>
*[[Wood]] - <code>wood_static_vertical</code>
*[[Damp Wood]] - <code>wood_static_wet</code>
*[[Wood]] - <code>wood_trailer</code>
*[[Wood]] - <code>wood_tree</code>
*[[Wood]] - <code>wood_wall</code>

Reaction CargoQuery Template WIP

NOTE: This is assuming the Materials and Alchemy Cargo tables are exactly identical to the "material info" and "material reactions" sheets from vexx32's Noita 1.0 Materials spreadsheet.

The template will query the Material and Alchemy Cargo tables using one material as an input to create a list of all reactions for that material. Below is a step-by-step description of the process:

Step 1: Material ID Input

The template will require the internal name of the specified material, since some materials share Names but not InternalNames. For this example, brass will be used.

{{ReactionTable|material=brass}}

Step 2: Lookup the Material ID in the Material Cargo Table

Using the material's InternalName, the material's in-game name and tags are pulled from the Material Cargo table.

{{#vardefine:materialData|{{#cargo_query:table=Materials
|fields=CONCAT(name,',',internalName,',',tags)
|where=internalName='brass'
|format=list
|delimiter=
|no html
}}}} 

{{#vardefineecho:materialName|{{#explode:{{#var:materialData}}|,|0}}}}
{{#vardefineecho:materialInternal|{{#explode:{{#var:materialData}}|,|1}}}}
{{#vardefineecho:materialTags|{{#explode:{{#var:materialData}}|,|2}}}}

  • Name: Brass
  • InternalName: brass
  • Tags: 6 ([sand_metal],[corrodible],[meltable_metal],[alchemy],[solid],[earth])

Step 3: Generate SQL Query Using Material Data

The complex part. Using the material's tags, the query will look for all alchemy reactions containing any of the 6 tags associated with Brass, along with reactions containing Brass itself. This is the WHERE '[tag]' IN (Reactant1, ...) OR section. A case statement is made to replace the tag with the material's name and ID. i.e. [sand_metal] will be replaced with Brass (brass). This is the CASE WHERE Reactant1 IN ('[tag]') section.

Query Code

SQL Version

SELECT

CASE WHEN Reactant1 IN ('[sand_metal]','[corrodible]','[meltable_metal]','[alchemy]','[solid]','[earth]') THEN 'Brass (brass)' ELSE Reactant1 END AS Reactant1,

CASE WHEN Reactant2 IN ('[sand_metal]','[corrodible]','[meltable_metal]','[alchemy]','[solid]','[earth]') THEN 'Brass (brass)' ELSE Reactant2 END AS Reactant2,

CASE WHEN Reactant3 IN ('[sand_metal]','[corrodible]','[meltable_metal]','[alchemy]','[solid]','[earth]') THEN 'Brass (brass)' ELSE Reactant3 END AS Reactant3,

CASE WHEN Product1 IN ('[sand_metal]','[corrodible]','[meltable_metal]','[alchemy]','[solid]','[earth]') THEN 'Brass (brass)' ELSE Product1 END AS Product1,

CASE WHEN Product2 IN ('[sand_metal]','[corrodible]','[meltable_metal]','[alchemy]','[solid]','[earth]') THEN 'Brass (brass)' ELSE Product2 END AS Product2,

CASE WHEN Product3 IN ('[sand_metal]','[corrodible]','[meltable_metal]','[alchemy]','[solid]','[earth]') THEN 'Brass (brass)' ELSE Product3 END AS Product3,

PROBABILITY AS Rate

FROM Alchemy

WHERE


'[sand_metal]' IN (Reactant1, Reactant2, Reactant3, Product1, Product2, Product3) OR

'[corrodible]' IN (Reactant1, Reactant2, Reactant3, Product1, Product2, Product3) OR

'[meltable_metal]' IN (Reactant1, Reactant2, Reactant3, Product1, Product2, Product3) OR

'[alchemy]' IN (Reactant1, Reactant2, Reactant3, Product1, Product2, Product3) OR

'[solid]' IN (Reactant1, Reactant2, Reactant3, Product1, Product2, Product3) OR

'[earth]' IN (Reactant1, Reactant2, Reactant3, Product1, Product2, Product3) OR

'Brass (brass)' IN (Reactant1, Reactant2, Reactant3, Product1, Product2, Product3) OR 0

CargoQuery Version

{{#invoke:CargoQuery|main
|q?tables=Alchemy
|q?fields=CASE WHEN reactant1 IN ('[sand_metal]','[corrodible]','[meltable_metal]','[alchemy]','[solid]','[earth]') THEN 'Brass (brass)' ELSE reactant1 END=reactant1,CASE WHEN reactant2 IN ('[sand_metal]','[corrodible]','[meltable_metal]','[alchemy]','[solid]','[earth]') THEN 'Brass (brass)' ELSE reactant2 END=reactant2,CASE WHEN reactant3 IN ('[sand_metal]','[corrodible]','[meltable_metal]','[alchemy]','[solid]','[earth]') THEN 'Brass (brass)' ELSE reactant3 END=reactant3,CASE WHEN product1 IN ('[sand_metal]','[corrodible]','[meltable_metal]','[alchemy]','[solid]','[earth]') THEN 'Brass (brass)' ELSE product1 END=product1,CASE WHEN product2 IN ('[sand_metal]','[corrodible]','[meltable_metal]','[alchemy]','[solid]','[earth]') THEN 'Brass (brass)' ELSE product2 END=product2,CASE WHEN product3 IN ('[sand_metal]','[corrodible]','[meltable_metal]','[alchemy]','[solid]','[earth]') THEN 'Brass (brass)' ELSE product3 END=product3,probability
|q?limit=400
|q?where='[sand_metal]' IN (Reactant1, Reactant2, Reactant3, Product1, Product2, Product3) OR'[corrodible]' IN (Reactant1, Reactant2, Reactant3, Product1, Product2, Product3) OR'[meltable_metal]' IN (Reactant1, Reactant2, Reactant3, Product1, Product2, Product3) OR'[alchemy]' IN (Reactant1, Reactant2, Reactant3, Product1, Product2, Product3) OR'[solid]' IN (Reactant1, Reactant2, Reactant3, Product1, Product2, Product3) OR'[earth]' IN (Reactant1, Reactant2, Reactant3, Product1, Product2, Product3) OR 'Brass (brass)' IN (Reactant1, Reactant2, Reactant3, Product1, Product2, Product3) OR 0
|template=ReactionQuery/row
}}

Output

This is the expect output of the SQL without any additional modifications:

Reactant 1 Reactant 2 Reactant 3 Product 1 Product 2 Product 3 Rate
[acid] Brass (brass) [acid] Flammable Gas (acid_gas) 50
[fire_strong] Brass (brass) [fire_strong] [meltable_metal]_molten 30
Brass (brass) [lava] [meltable_metal]_molten [lava] 80
Brass (brass) [fire_strong] Fungal Soil (shock_powder) [fire_strong] 50
Brass (brass) Diamond (diamond) Purifying Powder (purifying_powder) Purifying Powder (purifying_powder) 50
Brass (brass) Unstable Teleportatium (magic_liquid_unstable_teleportation) Metal Dust (metal_sand) Smoke (smoke) 50
Concentrated Mana (magic_liquid_mana_regeneration) Brass (brass) Concentrated Mana (magic_liquid_mana_regeneration) Steam (steam) 25
Copper (copper) Brass (brass) Water (water) Silver (silver) Smoke (smoke) Smoke (smoke) 100
Copper (copper) Teleportatium (magic_liquid_teleportation) Brass (brass) Smoke (smoke) 50
Corrupted Rock (corruption_static) Brass (brass) Corrupted Rock (corruption_static) Corrupted Rock (corruption_static) 100
Draught of Midas (midas) Brass (brass) Draught of Midas (midas) Gold (gold) 100
Flummoxium (material_confusion) Brass (brass) Levitatium (magic_liquid_faster_levitation) Levitatium (magic_liquid_faster_levitation) 45
Molten Brass (brass_molten) [cold] Brass (brass) [cold] 50
Molten Brass (brass_molten) [frozen] Brass (brass) [frozen] 50
Molten Brass (brass_molten) [water] Brass (brass) Steam (steam) 50

With Wiki formatting in the CargoQuery version, it could be to be the same as the current MaterialReactions table, and can even reuse the /start, /row, and /end templates.

Reaction Rate Reagents Products
50 [acid] + Brass [acid] + Flammable Gas
30 [fire_strong] + Brass [fire_strong] + Molten Brass
80 Brass + [lava] Molten Brass + [lava]
50 Brass + [fire_strong] Fungal Soil + [fire_strong]
50 Brass + Diamond Purifying Powder + Purifying Powder
50 Brass + Unstable Teleportatium Metal Dust + Smoke
25 Concentrated Mana + Brass Concentrated Mana + Steam
100 Copper + Brass + Water Silver + Smoke + Smoke
50 Copper + Teleportatium Brass + Smoke
100 Corrupted Rock + Brass Corrupted Rock + Corrupted Rock
100 Draught of Midas + Brass Draught of Midas + Gold
45 Flummoxium + Brass Levitatium + Levitatium
50 Molten Brass + [cold] Brass + [cold]
50 Molten Brass + [frozen] Brass + [frozen]

Notes

  • Should the InternalNames be included/excluded in the table? As mentioned before, some materials share names but not InternalNames. If the InternalNames were hidden, it would result in seemingly duplicate reactions. There's no example in the output table but the spreadsheet has a few, such as Water + Ice (ice) and Water + Ice (ice_static). A possible solution would be to give every material a unique name, but then it wouldn't match up to how they're displayed in-game.
  • Certain Alchemical reactions have oddly named tags, specifically the ones with the _vapour, _molten, _rust, and _oxide suffixes. An example can be seen in the second and third row of the SQL output table where it lists [meltable_metal]_molten instead of Molten Brass (brass_molten). There's no easy way to implement a fix for this in the SQL, and may need to be resolved with Wiki code instead.