User talk:Threehamburgers

From Noita Wiki
Jump to navigation Jump to search
how bad does this look?


Add Trigger
Add Timer


Starter spells

Spark Bolt
Bouncing Burst
Energy Sphere
Spitter Bolt


Starter bomb spells

Bomb
Dynamite
Magic Missile
Unstable Crystal


sorting by emitter material

Caption
emitter spell
acid_gas acid_trail, acidshot, slimeball
blood blood_magic, blood_to_power
gold money_magic
plasma_fading bullet_slow, mana_reduce
plasma_fading_pink black_hole, black_hole_big, black_hole_giga, worm_rain, xray
poison_gas poison_blast, poison_trail
spark_blue lance
spark alcohol_blast, nuke, nuke_giga, rocket
spark, smoke arc_fire, fire_trail
spark_green accelerating_shot, grenade_tier_2 , lifetime_down, rocket_tier_2, speed
spark_purple_bright grenade_tier_3, rocket_tier_3
spark_red decelerating_shot, lifetime


base_explosive: burn_trail, explosion, explosion_light, explosive_projectile, fire_blast, fireball, firebomb, flamethrower, grenade, grenade_trigger, meteor_rain base_damage: critical_hit, damage, damage_forever, damage_random base_electricity: electric_charge, thunder_blast, thunderball base_ice: iceball base_laser: spiral_shot

sprite emitters: arc_electric bomb_holy, bomb_holy_giga darkflame death_cross freeze heal_bullet heavy_shot ice_circle light_shot lightning teleport_projectile, teleport_projectile_short, teleport_projectile_static tentacle, tentacle_timer

Debug mode

Based on the F1 description and/or toggle names: The player is basically not important to any of this, the player just controls the camera

F1 while debugging shows a couple of options.

  • B draws Box2Ds. Box2Ds (to me at least) typically mean physics objects but the game also appears to consider stuff like fluids to be Box2Ds.
    • Red is 'sleeping' Box2Ds, green is 'active' Box2Ds. I'm not sure what the difference is, I assume they're no longer being checked for collisions. Red also denotes fluids/sands. Box2Ds briefly go 'active' again when they're loaded back in.
    • Blue is I think like Box2Ds or something from terrain.
  • Shift+B draws 'update rects' which appear to be necessary for anything to move or interact.
  • N (or something) draws a bunch of other boxes.
    • Yellow is sprites, I think.
    • There are a bunch of blue boxes on the player - the vertical one I think is the hitbox of the player, the horizontal one is the 'eatbox'.
    • Projectiles get drawn in red.

Terrain (blue collision shapes) and update rects are divided up into 64x64 pixel blocks. These are in world coordinates (e.g. don't depend on camera or player). I need some way to refer to these blocks without calling them 'chunks' as I think chunks are made up of 6x6 of these 64x64 blocks, so I will call them .. blocks I guess. So 'blocks' means a 64x64 square in world coordinates aligned to the updaterect/box2D grid. Terrain is not actually loaded in as a block available for collisions until a box2D (red/green) enters their block. Players or animals don't appear to need the terrain to be 'Box2Ded' to figure out platforming. Box2Ds (red) can move between blocks, which causes the green 'update rects' to follow them. Projectiles can do this too! So an accelerating black hole will zoom off into the distance trailing updaterects. But it won't affect terrain in chunks that aren't 'loaded in' yet (hence the common truncated black hole trail). As we've seen from deerswapper shenanigans, projectiles 'in' unloaded chunks are a bit weird, still; for example, if you stack a gajillion light shots on a black hole with "timer" (expiration trigger) into a nolla + return, it won't teleport you to the end point. But as we've seen from deerswapper / PW spitter bolt, two things that *do* work are timers and expiration triggers on All-Seeing Eye. Plus, those wands successfully create projectiles/deer; the former creates a real deer that can be hit by a real swapper bolt, and the other shoots a real homebringer back at you. (The question of whether it would be possible for a trigger projectile to trigger in an unloaded chunk is sort of academic since for the most part it would have nothing to trigger on, although maybe like Kolmi?) So working theory: projectiles can exist in unloaded chunks, but they can't fire expiration triggers from expiring through projectile lifetime (but they can fire expiration triggers from being killed, like through LifetimeComponents or possibly Explosive Detonator).

Apparently being 'loaded in' means that terrain can create its own Box2Ds, e.g. mountain hall 'dripping water' particle emitters generate liquid which needs to be checked for collisions, and this keeps the blocks containing the emitter and below the emitter loaded in for quite a while.

Pressing Shift+F7 brings up some more options:

  • 'mDraw64x64CellCounts' toggles on a grid showing the 64x64 block boundaries with a numbering that I don't totally understand but appears to be how much terrain is in them.
  • toggling 'mDrawWorldChunks' toggles between a minimap version of the world or not (adjust position and scale with mDrawWorldChunksScale/Pos)

Chunks are 6x64 to a side. The game keeps track of which direction you're coming from (the buffer around the screen is slightly longer in the direction you came from). As the camera moves, the chunks load in just offscreen, so your screen contains all the chunks that are currently on screen plus one more in any direction. Anything further than (I think) 2.5 chunks away (in any direction, but not, uh, as the crow files, so meaning you have to get 3 chunks away horizontally or vertically) unloads. Interestingly Kolmi never gets unloaded, I guess because of the 'StreamingKeepAliveComponent'.

Shift+F5 brings up a more helpful teleport menu with various points of interest - if I knew this, I wouldn't have had to mess with CheatGUI.