├── .gitattributes ├── utils ├── luac.exe ├── luac_x86.exe ├── fix_fog.py ├── recolor_model.py ├── lua_merge_mod.py ├── blender_bake_vertex_colors.py └── c_to_lua.py ├── mods ├── bb-death │ ├── bb-death.zip │ ├── sound │ │ └── baby_blue.ogg │ ├── README.md │ └── a-utils.lua ├── gun-mod │ ├── gun-mod.zip │ ├── sound │ │ ├── dry.mp3 │ │ ├── impact.mp3 │ │ ├── ricochet.mp3 │ │ ├── ak47_shoot.mp3 │ │ ├── magnum_reload.mp3 │ │ ├── magnum_shoot.mp3 │ │ ├── pistol_reload.mp3 │ │ ├── pistol_shoot.mp3 │ │ ├── shotgun_shoot.mp3 │ │ └── bad_to_the_bone_riff.mp3 │ ├── actors │ │ ├── arm_geo.bin │ │ ├── ak47_geo.bin │ │ ├── arrow_geo.bin │ │ ├── magnum_geo.bin │ │ ├── pistol_geo.bin │ │ ├── shotgun_geo.bin │ │ ├── bullet_hole_geo.bin │ │ └── troll_explosion_geo.bin │ ├── textures │ │ ├── gun_mod_crosshair.png │ │ └── gun_mod_crosshair.tex │ ├── README.md │ ├── a-constants.lua │ ├── c-dialog-arrow.lua │ ├── b-gun.lua │ ├── c-viewmodel-animations.lua │ └── c-viewmodel.lua ├── archived │ ├── hats │ │ ├── hats.zip │ │ ├── actors │ │ │ ├── cape_geo.bin │ │ │ ├── halo_geo.bin │ │ │ ├── artisan_geo.bin │ │ │ ├── chomper_geo.bin │ │ │ ├── crown_geo.bin │ │ │ ├── raccoon_geo.bin │ │ │ ├── slumber_geo.bin │ │ │ ├── tophat_geo.bin │ │ │ ├── bonebrim_geo.bin │ │ │ ├── headcrab_geo.bin │ │ │ ├── sonichair_geo.bin │ │ │ ├── bonebrimold_geo.bin │ │ │ └── drheadband_geo.bin │ │ └── README.md │ ├── flood │ │ ├── flood.zip │ │ ├── actors │ │ │ ├── ctt_geo.bin │ │ │ ├── flood_geo.bin │ │ │ ├── koopa_flag_geo.bin │ │ │ ├── launchpad_geo.bin │ │ │ └── launchpad_collision.col │ │ ├── textures │ │ │ └── flood_flag.tex │ │ ├── levels │ │ │ └── level_sa_entry.lvl │ │ ├── sound │ │ │ └── 00_pinball_custom.m64 │ │ ├── README.md │ │ └── a-utils.lua │ ├── islands │ │ ├── islands.zip │ │ ├── skybox │ │ │ ├── sunset.0.rgba16.png │ │ │ ├── sunset.1.rgba16.png │ │ │ ├── sunset.2.rgba16.png │ │ │ ├── sunset.3.rgba16.png │ │ │ ├── sunset.4.rgba16.png │ │ │ ├── sunset.5.rgba16.png │ │ │ ├── sunset.6.rgba16.png │ │ │ ├── sunset.7.rgba16.png │ │ │ ├── sunset.8.rgba16.png │ │ │ ├── sunset.9.rgba16.png │ │ │ ├── sunset.10.rgba16.png │ │ │ ├── sunset.11.rgba16.png │ │ │ ├── sunset.12.rgba16.png │ │ │ ├── sunset.13.rgba16.png │ │ │ ├── sunset.14.rgba16.png │ │ │ ├── sunset.15.rgba16.png │ │ │ ├── sunset.16.rgba16.png │ │ │ ├── sunset.17.rgba16.png │ │ │ ├── sunset.18.rgba16.png │ │ │ ├── sunset.19.rgba16.png │ │ │ ├── sunset.20.rgba16.png │ │ │ ├── sunset.21.rgba16.png │ │ │ ├── sunset.22.rgba16.png │ │ │ ├── sunset.23.rgba16.png │ │ │ ├── sunset.24.rgba16.png │ │ │ ├── sunset.25.rgba16.png │ │ │ ├── sunset.26.rgba16.png │ │ │ ├── sunset.27.rgba16.png │ │ │ ├── sunset.28.rgba16.png │ │ │ ├── sunset.29.rgba16.png │ │ │ ├── sunset.30.rgba16.png │ │ │ ├── sunset.31.rgba16.png │ │ │ ├── sunset.32.rgba16.png │ │ │ ├── sunset.33.rgba16.png │ │ │ ├── sunset.34.rgba16.png │ │ │ ├── sunset.35.rgba16.png │ │ │ ├── sunset.36.rgba16.png │ │ │ ├── sunset.37.rgba16.png │ │ │ ├── sunset.38.rgba16.png │ │ │ ├── sunset.39.rgba16.png │ │ │ ├── sunset.40.rgba16.png │ │ │ ├── sunset.41.rgba16.png │ │ │ ├── sunset.42.rgba16.png │ │ │ ├── sunset.43.rgba16.png │ │ │ ├── sunset.44.rgba16.png │ │ │ ├── sunset.45.rgba16.png │ │ │ ├── sunset.46.rgba16.png │ │ │ ├── sunset.47.rgba16.png │ │ │ ├── sunset.48.rgba16.png │ │ │ ├── sunset.49.rgba16.png │ │ │ ├── sunset.50.rgba16.png │ │ │ ├── sunset.51.rgba16.png │ │ │ ├── sunset.52.rgba16.png │ │ │ ├── sunset.53.rgba16.png │ │ │ ├── sunset.54.rgba16.png │ │ │ ├── sunset.55.rgba16.png │ │ │ ├── sunset.56.rgba16.png │ │ │ ├── sunset.57.rgba16.png │ │ │ ├── sunset.58.rgba16.png │ │ │ ├── sunset.59.rgba16.png │ │ │ ├── sunset.60.rgba16.png │ │ │ ├── sunset.61.rgba16.png │ │ │ ├── sunset.62.rgba16.png │ │ │ └── sunset.63.rgba16.png │ │ ├── levels │ │ │ └── level_wmotr_entry.lvl │ │ ├── textures │ │ │ ├── effect_0B00684C.tex │ │ │ └── effect │ │ │ │ └── tiny_bubble.0684C.rgba16.png │ │ ├── main.lua │ │ └── README.md │ ├── l4d2-hud │ │ ├── l4d2-hud.zip │ │ ├── textures │ │ │ ├── 1up.png │ │ │ ├── 1up.tex │ │ │ ├── box.png │ │ │ ├── box.tex │ │ │ ├── luigi.png │ │ │ ├── luigi.tex │ │ │ ├── mario.png │ │ │ ├── mario.tex │ │ │ ├── no1up.png │ │ │ ├── no1up.tex │ │ │ ├── pac.png │ │ │ ├── pac.tex │ │ │ ├── toad.png │ │ │ ├── toad.tex │ │ │ ├── wario.png │ │ │ ├── wario.tex │ │ │ ├── waluigi.png │ │ │ ├── waluigi.tex │ │ │ ├── boxsquare.png │ │ │ ├── boxsquare.tex │ │ │ ├── gradient.png │ │ │ ├── gradient.tex │ │ │ ├── luigi_down.png │ │ │ ├── luigi_down.tex │ │ │ ├── mario_down.png │ │ │ ├── mario_down.tex │ │ │ ├── toad_down.png │ │ │ ├── toad_down.tex │ │ │ ├── wario_down.png │ │ │ ├── wario_down.tex │ │ │ ├── waluigi_down.png │ │ │ └── waluigi_down.tex │ │ ├── README.md │ │ └── first-aid.lua │ ├── lego-hud │ │ ├── lego-hud.zip │ │ ├── sound │ │ │ ├── minikit.mp3 │ │ │ └── truejedi.mp3 │ │ ├── textures │ │ │ ├── heart.png │ │ │ ├── heart.tex │ │ │ ├── circle.png │ │ │ ├── circle.tex │ │ │ ├── heart_half.png │ │ │ ├── heart_half.tex │ │ │ ├── heart_empty.png │ │ │ ├── heart_empty.tex │ │ │ ├── texture_hud_char_coin.tex │ │ │ ├── texture_hud_char_star.tex │ │ │ └── segment2 │ │ │ │ ├── segment2.05800.rgba16.png │ │ │ │ └── segment2.05C00.rgba16.png │ │ ├── actors │ │ │ ├── star_geo.bin │ │ │ ├── red_coin_geo.bin │ │ │ ├── blue_coin_geo.bin │ │ │ ├── bowser_key_geo.bin │ │ │ ├── yellow_coin_geo.bin │ │ │ ├── challenge_minikit_geo.bin │ │ │ ├── red_coin_no_shadow_geo.bin │ │ │ ├── transparent_star_geo.bin │ │ │ ├── blue_coin_no_shadow_geo.bin │ │ │ └── yellow_coin_no_shadow_geo.bin │ │ └── README.md │ ├── mario-style │ │ ├── mario-style.zip │ │ ├── sound │ │ │ └── gangnam.mp3 │ │ ├── README.md │ │ └── main.lua │ ├── lgbt-goombas │ │ ├── lgbt-goombas.zip │ │ ├── actors │ │ │ ├── star_geo.bin │ │ │ ├── goomba_geo.bin │ │ │ ├── goomba_bi_geo.bin │ │ │ ├── goomba_pan_geo.bin │ │ │ ├── goomba_asexual_geo.bin │ │ │ ├── goomba_lesbian_geo.bin │ │ │ ├── goomba_trans_geo.bin │ │ │ └── transparent_star_geo.bin │ │ ├── README.md │ │ ├── pan-moveset.lua │ │ ├── trans-moveset.lua │ │ ├── asexual-moveset.lua │ │ ├── bi-moveset.lua │ │ └── main.lua │ ├── flying-gorilla │ │ ├── textures │ │ │ └── ad.tex │ │ ├── actors │ │ │ ├── cube_geo.bin │ │ │ ├── water_geo.bin │ │ │ ├── creature_geo.bin │ │ │ ├── cube_collision.col │ │ │ ├── water_collision.col │ │ │ ├── creature_collision.col │ │ │ ├── flying_gorilla_geo.bin │ │ │ └── flying_gorilla_collision.col │ │ ├── flying-gorilla.zip │ │ ├── levels │ │ │ └── level_bob_entry.lvl │ │ ├── README.md │ │ ├── a-utils.lua │ │ ├── infinite-map.lua │ │ └── obstacles.lua │ ├── climb-the-tower │ │ ├── climb-the-tower.zip │ │ ├── actors │ │ │ ├── launchpad_geo.bin │ │ │ └── launchpad_collision.col │ │ ├── levels │ │ │ └── level_pss_entry.lvl │ │ ├── README.md │ │ ├── yoshi.lua │ │ └── launchpad.lua │ ├── galaxy-star-select │ │ ├── textures │ │ │ ├── back.png │ │ │ ├── back.tex │ │ │ ├── gradient.png │ │ │ ├── gradient.tex │ │ │ ├── gradient_flipped.png │ │ │ └── gradient_flipped.tex │ │ ├── README.md │ │ ├── galaxy-star-select.zip │ │ ├── sound │ │ │ └── star_select.m64 │ │ ├── levels │ │ │ └── level_star_select_entry.lvl │ │ ├── a-utils.lua │ │ └── star-select-bhvs.lua │ ├── recolorable-stars │ │ ├── actors │ │ │ └── star_geo.bin │ │ ├── recolorable-stars.zip │ │ ├── README.md │ │ └── main.lua │ └── completion-percentage.lua ├── night-mode │ ├── night-mode.zip │ ├── sound │ │ ├── piano.ogg │ │ ├── flashlight.ogg │ │ ├── jumpscare.ogg │ │ ├── night_level_hot.m64 │ │ ├── night_level_grass.m64 │ │ ├── night_level_slide.m64 │ │ ├── night_level_snow.m64 │ │ ├── night_level_water.m64 │ │ ├── night_level_freezing.m64 │ │ ├── night_level_inside_castle.m64 │ │ └── night_level_underground.m64 │ ├── data │ │ ├── bhvMadPiano.bhv │ │ ├── bhvNMApparition.bhv │ │ ├── bhvNMBowserLight.bhv │ │ ├── bhvNMFlashlight.bhv │ │ └── bhvNMObjectLight.bhv │ ├── actors │ │ ├── blue_coin_geo.bin │ │ ├── red_coin_geo.bin │ │ ├── nm_bbh_void_geo.bin │ │ ├── nm_ttc_void_geo.bin │ │ ├── yellow_coin_geo.bin │ │ ├── nm_apparition_geo.bin │ │ ├── blue_coin_no_shadow_geo.bin │ │ ├── red_coin_no_shadow_geo.bin │ │ └── yellow_coin_no_shadow_geo.bin │ ├── textures │ │ ├── fire_09003000.tex │ │ ├── fire_09006800.tex │ │ ├── fire_09007800.tex │ │ ├── fire_09008800.tex │ │ ├── fire_09009000.tex │ │ ├── fire_09009800.tex │ │ ├── nm_jumpscare_01.tex │ │ ├── nm_jumpscare_02.tex │ │ ├── nm_jumpscare_03.tex │ │ ├── nm_jumpscare_04.tex │ │ ├── nm_jumpscare_05.tex │ │ ├── nm_jumpscare_06.tex │ │ ├── nm_jumpscare_07.tex │ │ ├── nm_jumpscare_08.tex │ │ ├── nm_jumpscare_09.tex │ │ ├── nm_jumpscare_10.tex │ │ ├── nm_jumpscare_11.tex │ │ ├── nm_jumpscare_12.tex │ │ ├── nm_jumpscare_13.tex │ │ ├── nm_jumpscare_14.tex │ │ ├── nm_jumpscare_15.tex │ │ ├── nm_jumpscare_16.tex │ │ ├── nm_jumpscare_17.tex │ │ ├── nm_jumpscare_18.tex │ │ ├── nm_jumpscare_19.tex │ │ ├── nm_jumpscare_20.tex │ │ ├── nm_jumpscare_21.tex │ │ ├── nm_jumpscare_22.tex │ │ ├── nm_jumpscare_23.tex │ │ ├── nm_jumpscare_24.tex │ │ ├── nm_jumpscare_25.tex │ │ ├── nm_jumpscare_26.tex │ │ ├── nm_jumpscare_27.tex │ │ ├── nm_jumpscare_28.tex │ │ ├── nm_jumpscare_29.tex │ │ ├── texture_waterbox_lava.tex │ │ ├── bitfs_seg7_texture_07001800.tex │ │ ├── lll_seg7_texture_0700DC00.tex │ │ ├── lll_seg7_texture_0700E400.tex │ │ ├── lll_seg7_texture_0700EC00.tex │ │ ├── lll_seg7_texture_0700F400.tex │ │ ├── bowser_2_seg7_texture_07000000.tex │ │ ├── inside_castle_seg7_texture_07012800.tex │ │ └── inside_castle_seg7_texture_07013800.tex │ ├── README.md │ ├── a-constants.lua │ └── shading.lua ├── underworld │ ├── underworld.zip │ ├── actors │ │ ├── laser_geo.bin │ │ ├── noise_geo.bin │ │ ├── orb_geo.bin │ │ ├── sky_geo.bin │ │ ├── star_geo.bin │ │ ├── castle_geo.bin │ │ ├── goomba_geo.bin │ │ ├── letter_geo.bin │ │ ├── shadow_geo.bin │ │ ├── apparition_geo.bin │ │ ├── soul_flame_geo.bin │ │ ├── sparkles_geo.bin │ │ ├── castle_rising_geo.bin │ │ └── soul_star_noise_geo.bin │ ├── sound │ │ ├── earthquake.mp3 │ │ ├── shitilizer.m64 │ │ ├── sriats_sseldne.mp3 │ │ └── apparition_dialog.mp3 │ ├── textures │ │ ├── compass_back.png │ │ ├── compass_back.tex │ │ ├── effect_0B00684C.tex │ │ ├── underworld_star.png │ │ ├── underworld_star.tex │ │ ├── compass_camera_dial.png │ │ ├── compass_camera_dial.tex │ │ ├── compass_player_dial.png │ │ ├── compass_player_dial.tex │ │ ├── underworld_background.png │ │ ├── underworld_background.tex │ │ └── effect │ │ │ └── tiny_bubble.0684C.rgba16.png │ ├── levels │ │ ├── level_bob_entry.lvl │ │ ├── level_castle_grounds_entry.lvl │ │ └── level_castle_courtyard_entry.lvl │ ├── README.md │ └── npc.lua ├── day-night-cycle │ ├── day-night-cycle.zip │ ├── data │ │ ├── bhvDNCSkybox.bhv │ │ ├── bhvDNCNoSkybox.bhv │ │ ├── bhvBirdsSoundLoop.bhv │ │ ├── bhvBird.bhv │ │ └── bhvButterfly.bhv │ ├── actors │ │ └── dnc_skybox_geo.bin │ ├── sound │ │ ├── night_level_hot.m64 │ │ ├── night_level_grass.m64 │ │ ├── night_level_slide.m64 │ │ ├── night_level_snow.m64 │ │ ├── night_level_water.m64 │ │ ├── night_level_inside_castle.m64 │ │ └── night_level_underground.m64 │ ├── README.md │ ├── skybox.lua │ ├── a-utils.lua │ └── b-constants.lua ├── pet-propeller-flyguy │ ├── sound │ │ ├── drill.ogg │ │ ├── fall.ogg │ │ ├── fly.ogg │ │ └── spin.ogg │ ├── actors │ │ └── flyguy_pet_geo.bin │ ├── pet-propeller-flyguy.zip │ └── README.md ├── weather-cycle-dx │ ├── data │ │ ├── bhvWCAurora.bhv │ │ ├── bhvWCSkybox.bhv │ │ ├── bhvWCLightning.bhv │ │ └── bhvWCRainDroplet.bhv │ ├── weather-cycle-dx.zip │ ├── actors │ │ ├── wc_aurora_geo.bin │ │ ├── wc_lightning_geo.bin │ │ ├── wc_rain_droplet_geo.bin │ │ ├── wc_skybox_cloudy_geo.bin │ │ └── wc_skybox_storm_geo.bin │ ├── textures │ │ └── water_09009000.tex │ ├── README.md │ └── a-constants.lua ├── easy-ceiling-cling.lua ├── pos-display.lua └── README.md ├── .gitignore ├── .vscode └── settings.json ├── LICENSE ├── README.md ├── constants.lua └── conventions.md /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto eol=lf -------------------------------------------------------------------------------- /utils/luac.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/utils/luac.exe -------------------------------------------------------------------------------- /utils/luac_x86.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/utils/luac_x86.exe -------------------------------------------------------------------------------- /mods/bb-death/bb-death.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/bb-death/bb-death.zip -------------------------------------------------------------------------------- /mods/gun-mod/gun-mod.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/gun-mod/gun-mod.zip -------------------------------------------------------------------------------- /mods/gun-mod/sound/dry.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/gun-mod/sound/dry.mp3 -------------------------------------------------------------------------------- /mods/archived/hats/hats.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/hats/hats.zip -------------------------------------------------------------------------------- /mods/archived/flood/flood.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/flood/flood.zip -------------------------------------------------------------------------------- /mods/gun-mod/actors/arm_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/gun-mod/actors/arm_geo.bin -------------------------------------------------------------------------------- /mods/gun-mod/sound/impact.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/gun-mod/sound/impact.mp3 -------------------------------------------------------------------------------- /mods/gun-mod/sound/ricochet.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/gun-mod/sound/ricochet.mp3 -------------------------------------------------------------------------------- /mods/night-mode/night-mode.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/night-mode.zip -------------------------------------------------------------------------------- /mods/night-mode/sound/piano.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/sound/piano.ogg -------------------------------------------------------------------------------- /mods/underworld/underworld.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/underworld/underworld.zip -------------------------------------------------------------------------------- /mods/archived/islands/islands.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/islands.zip -------------------------------------------------------------------------------- /mods/bb-death/sound/baby_blue.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/bb-death/sound/baby_blue.ogg -------------------------------------------------------------------------------- /mods/gun-mod/actors/ak47_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/gun-mod/actors/ak47_geo.bin -------------------------------------------------------------------------------- /mods/gun-mod/actors/arrow_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/gun-mod/actors/arrow_geo.bin -------------------------------------------------------------------------------- /mods/gun-mod/sound/ak47_shoot.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/gun-mod/sound/ak47_shoot.mp3 -------------------------------------------------------------------------------- /mods/archived/l4d2-hud/l4d2-hud.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/l4d2-hud/l4d2-hud.zip -------------------------------------------------------------------------------- /mods/archived/lego-hud/lego-hud.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/lego-hud/lego-hud.zip -------------------------------------------------------------------------------- /mods/gun-mod/actors/magnum_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/gun-mod/actors/magnum_geo.bin -------------------------------------------------------------------------------- /mods/gun-mod/actors/pistol_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/gun-mod/actors/pistol_geo.bin -------------------------------------------------------------------------------- /mods/gun-mod/actors/shotgun_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/gun-mod/actors/shotgun_geo.bin -------------------------------------------------------------------------------- /mods/gun-mod/sound/magnum_reload.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/gun-mod/sound/magnum_reload.mp3 -------------------------------------------------------------------------------- /mods/gun-mod/sound/magnum_shoot.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/gun-mod/sound/magnum_shoot.mp3 -------------------------------------------------------------------------------- /mods/gun-mod/sound/pistol_reload.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/gun-mod/sound/pistol_reload.mp3 -------------------------------------------------------------------------------- /mods/gun-mod/sound/pistol_shoot.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/gun-mod/sound/pistol_shoot.mp3 -------------------------------------------------------------------------------- /mods/gun-mod/sound/shotgun_shoot.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/gun-mod/sound/shotgun_shoot.mp3 -------------------------------------------------------------------------------- /mods/night-mode/data/bhvMadPiano.bhv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/data/bhvMadPiano.bhv -------------------------------------------------------------------------------- /mods/night-mode/sound/flashlight.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/sound/flashlight.ogg -------------------------------------------------------------------------------- /mods/night-mode/sound/jumpscare.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/sound/jumpscare.ogg -------------------------------------------------------------------------------- /mods/underworld/actors/laser_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/underworld/actors/laser_geo.bin -------------------------------------------------------------------------------- /mods/underworld/actors/noise_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/underworld/actors/noise_geo.bin -------------------------------------------------------------------------------- /mods/underworld/actors/orb_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/underworld/actors/orb_geo.bin -------------------------------------------------------------------------------- /mods/underworld/actors/sky_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/underworld/actors/sky_geo.bin -------------------------------------------------------------------------------- /mods/underworld/actors/star_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/underworld/actors/star_geo.bin -------------------------------------------------------------------------------- /mods/underworld/sound/earthquake.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/underworld/sound/earthquake.mp3 -------------------------------------------------------------------------------- /mods/underworld/sound/shitilizer.m64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/underworld/sound/shitilizer.m64 -------------------------------------------------------------------------------- /mods/archived/flood/actors/ctt_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/flood/actors/ctt_geo.bin -------------------------------------------------------------------------------- /mods/archived/hats/actors/cape_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/hats/actors/cape_geo.bin -------------------------------------------------------------------------------- /mods/archived/hats/actors/halo_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/hats/actors/halo_geo.bin -------------------------------------------------------------------------------- /mods/underworld/actors/castle_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/underworld/actors/castle_geo.bin -------------------------------------------------------------------------------- /mods/underworld/actors/goomba_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/underworld/actors/goomba_geo.bin -------------------------------------------------------------------------------- /mods/underworld/actors/letter_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/underworld/actors/letter_geo.bin -------------------------------------------------------------------------------- /mods/underworld/actors/shadow_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/underworld/actors/shadow_geo.bin -------------------------------------------------------------------------------- /mods/archived/flood/actors/flood_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/flood/actors/flood_geo.bin -------------------------------------------------------------------------------- /mods/archived/hats/actors/artisan_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/hats/actors/artisan_geo.bin -------------------------------------------------------------------------------- /mods/archived/hats/actors/chomper_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/hats/actors/chomper_geo.bin -------------------------------------------------------------------------------- /mods/archived/hats/actors/crown_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/hats/actors/crown_geo.bin -------------------------------------------------------------------------------- /mods/archived/hats/actors/raccoon_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/hats/actors/raccoon_geo.bin -------------------------------------------------------------------------------- /mods/archived/hats/actors/slumber_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/hats/actors/slumber_geo.bin -------------------------------------------------------------------------------- /mods/archived/hats/actors/tophat_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/hats/actors/tophat_geo.bin -------------------------------------------------------------------------------- /mods/archived/l4d2-hud/textures/1up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/l4d2-hud/textures/1up.png -------------------------------------------------------------------------------- /mods/archived/l4d2-hud/textures/1up.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/l4d2-hud/textures/1up.tex -------------------------------------------------------------------------------- /mods/archived/l4d2-hud/textures/box.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/l4d2-hud/textures/box.png -------------------------------------------------------------------------------- /mods/archived/l4d2-hud/textures/box.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/l4d2-hud/textures/box.tex -------------------------------------------------------------------------------- /mods/archived/l4d2-hud/textures/luigi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/l4d2-hud/textures/luigi.png -------------------------------------------------------------------------------- /mods/archived/l4d2-hud/textures/luigi.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/l4d2-hud/textures/luigi.tex -------------------------------------------------------------------------------- /mods/archived/l4d2-hud/textures/mario.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/l4d2-hud/textures/mario.png -------------------------------------------------------------------------------- /mods/archived/l4d2-hud/textures/mario.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/l4d2-hud/textures/mario.tex -------------------------------------------------------------------------------- /mods/archived/l4d2-hud/textures/no1up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/l4d2-hud/textures/no1up.png -------------------------------------------------------------------------------- /mods/archived/l4d2-hud/textures/no1up.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/l4d2-hud/textures/no1up.tex -------------------------------------------------------------------------------- /mods/archived/l4d2-hud/textures/pac.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/l4d2-hud/textures/pac.png -------------------------------------------------------------------------------- /mods/archived/l4d2-hud/textures/pac.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/l4d2-hud/textures/pac.tex -------------------------------------------------------------------------------- /mods/archived/l4d2-hud/textures/toad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/l4d2-hud/textures/toad.png -------------------------------------------------------------------------------- /mods/archived/l4d2-hud/textures/toad.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/l4d2-hud/textures/toad.tex -------------------------------------------------------------------------------- /mods/archived/l4d2-hud/textures/wario.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/l4d2-hud/textures/wario.png -------------------------------------------------------------------------------- /mods/archived/l4d2-hud/textures/wario.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/l4d2-hud/textures/wario.tex -------------------------------------------------------------------------------- /mods/archived/lego-hud/sound/minikit.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/lego-hud/sound/minikit.mp3 -------------------------------------------------------------------------------- /mods/archived/lego-hud/sound/truejedi.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/lego-hud/sound/truejedi.mp3 -------------------------------------------------------------------------------- /mods/archived/lego-hud/textures/heart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/lego-hud/textures/heart.png -------------------------------------------------------------------------------- /mods/archived/lego-hud/textures/heart.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/lego-hud/textures/heart.tex -------------------------------------------------------------------------------- /mods/archived/mario-style/mario-style.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/mario-style/mario-style.zip -------------------------------------------------------------------------------- /mods/day-night-cycle/day-night-cycle.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/day-night-cycle/day-night-cycle.zip -------------------------------------------------------------------------------- /mods/gun-mod/actors/bullet_hole_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/gun-mod/actors/bullet_hole_geo.bin -------------------------------------------------------------------------------- /mods/night-mode/actors/blue_coin_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/actors/blue_coin_geo.bin -------------------------------------------------------------------------------- /mods/night-mode/actors/red_coin_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/actors/red_coin_geo.bin -------------------------------------------------------------------------------- /mods/night-mode/data/bhvNMApparition.bhv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/data/bhvNMApparition.bhv -------------------------------------------------------------------------------- /mods/night-mode/data/bhvNMBowserLight.bhv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/data/bhvNMBowserLight.bhv -------------------------------------------------------------------------------- /mods/night-mode/data/bhvNMFlashlight.bhv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/data/bhvNMFlashlight.bhv -------------------------------------------------------------------------------- /mods/night-mode/data/bhvNMObjectLight.bhv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/data/bhvNMObjectLight.bhv -------------------------------------------------------------------------------- /mods/night-mode/sound/night_level_hot.m64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/sound/night_level_hot.m64 -------------------------------------------------------------------------------- /mods/pet-propeller-flyguy/sound/drill.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/pet-propeller-flyguy/sound/drill.ogg -------------------------------------------------------------------------------- /mods/pet-propeller-flyguy/sound/fall.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/pet-propeller-flyguy/sound/fall.ogg -------------------------------------------------------------------------------- /mods/pet-propeller-flyguy/sound/fly.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/pet-propeller-flyguy/sound/fly.ogg -------------------------------------------------------------------------------- /mods/pet-propeller-flyguy/sound/spin.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/pet-propeller-flyguy/sound/spin.ogg -------------------------------------------------------------------------------- /mods/underworld/actors/apparition_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/underworld/actors/apparition_geo.bin -------------------------------------------------------------------------------- /mods/underworld/actors/soul_flame_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/underworld/actors/soul_flame_geo.bin -------------------------------------------------------------------------------- /mods/underworld/actors/sparkles_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/underworld/actors/sparkles_geo.bin -------------------------------------------------------------------------------- /mods/underworld/sound/sriats_sseldne.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/underworld/sound/sriats_sseldne.mp3 -------------------------------------------------------------------------------- /mods/underworld/textures/compass_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/underworld/textures/compass_back.png -------------------------------------------------------------------------------- /mods/underworld/textures/compass_back.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/underworld/textures/compass_back.tex -------------------------------------------------------------------------------- /mods/archived/flood/textures/flood_flag.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/flood/textures/flood_flag.tex -------------------------------------------------------------------------------- /mods/archived/hats/actors/bonebrim_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/hats/actors/bonebrim_geo.bin -------------------------------------------------------------------------------- /mods/archived/hats/actors/headcrab_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/hats/actors/headcrab_geo.bin -------------------------------------------------------------------------------- /mods/archived/hats/actors/sonichair_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/hats/actors/sonichair_geo.bin -------------------------------------------------------------------------------- /mods/archived/l4d2-hud/textures/waluigi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/l4d2-hud/textures/waluigi.png -------------------------------------------------------------------------------- /mods/archived/l4d2-hud/textures/waluigi.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/l4d2-hud/textures/waluigi.tex -------------------------------------------------------------------------------- /mods/archived/lego-hud/actors/star_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/lego-hud/actors/star_geo.bin -------------------------------------------------------------------------------- /mods/archived/lego-hud/textures/circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/lego-hud/textures/circle.png -------------------------------------------------------------------------------- /mods/archived/lego-hud/textures/circle.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/lego-hud/textures/circle.tex -------------------------------------------------------------------------------- /mods/archived/lgbt-goombas/lgbt-goombas.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/lgbt-goombas/lgbt-goombas.zip -------------------------------------------------------------------------------- /mods/archived/mario-style/sound/gangnam.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/mario-style/sound/gangnam.mp3 -------------------------------------------------------------------------------- /mods/day-night-cycle/data/bhvDNCSkybox.bhv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/day-night-cycle/data/bhvDNCSkybox.bhv -------------------------------------------------------------------------------- /mods/gun-mod/actors/troll_explosion_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/gun-mod/actors/troll_explosion_geo.bin -------------------------------------------------------------------------------- /mods/gun-mod/sound/bad_to_the_bone_riff.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/gun-mod/sound/bad_to_the_bone_riff.mp3 -------------------------------------------------------------------------------- /mods/gun-mod/textures/gun_mod_crosshair.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/gun-mod/textures/gun_mod_crosshair.png -------------------------------------------------------------------------------- /mods/gun-mod/textures/gun_mod_crosshair.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/gun-mod/textures/gun_mod_crosshair.tex -------------------------------------------------------------------------------- /mods/night-mode/actors/nm_bbh_void_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/actors/nm_bbh_void_geo.bin -------------------------------------------------------------------------------- /mods/night-mode/actors/nm_ttc_void_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/actors/nm_ttc_void_geo.bin -------------------------------------------------------------------------------- /mods/night-mode/actors/yellow_coin_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/actors/yellow_coin_geo.bin -------------------------------------------------------------------------------- /mods/night-mode/sound/night_level_grass.m64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/sound/night_level_grass.m64 -------------------------------------------------------------------------------- /mods/night-mode/sound/night_level_slide.m64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/sound/night_level_slide.m64 -------------------------------------------------------------------------------- /mods/night-mode/sound/night_level_snow.m64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/sound/night_level_snow.m64 -------------------------------------------------------------------------------- /mods/night-mode/sound/night_level_water.m64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/sound/night_level_water.m64 -------------------------------------------------------------------------------- /mods/night-mode/textures/fire_09003000.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/textures/fire_09003000.tex -------------------------------------------------------------------------------- /mods/night-mode/textures/fire_09006800.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/textures/fire_09006800.tex -------------------------------------------------------------------------------- /mods/night-mode/textures/fire_09007800.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/textures/fire_09007800.tex -------------------------------------------------------------------------------- /mods/night-mode/textures/fire_09008800.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/textures/fire_09008800.tex -------------------------------------------------------------------------------- /mods/night-mode/textures/fire_09009000.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/textures/fire_09009000.tex -------------------------------------------------------------------------------- /mods/night-mode/textures/fire_09009800.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/textures/fire_09009800.tex -------------------------------------------------------------------------------- /mods/underworld/levels/level_bob_entry.lvl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/underworld/levels/level_bob_entry.lvl -------------------------------------------------------------------------------- /mods/underworld/sound/apparition_dialog.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/underworld/sound/apparition_dialog.mp3 -------------------------------------------------------------------------------- /mods/weather-cycle-dx/data/bhvWCAurora.bhv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/weather-cycle-dx/data/bhvWCAurora.bhv -------------------------------------------------------------------------------- /mods/weather-cycle-dx/data/bhvWCSkybox.bhv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/weather-cycle-dx/data/bhvWCSkybox.bhv -------------------------------------------------------------------------------- /mods/weather-cycle-dx/weather-cycle-dx.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/weather-cycle-dx/weather-cycle-dx.zip -------------------------------------------------------------------------------- /mods/archived/flood/actors/koopa_flag_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/flood/actors/koopa_flag_geo.bin -------------------------------------------------------------------------------- /mods/archived/flood/actors/launchpad_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/flood/actors/launchpad_geo.bin -------------------------------------------------------------------------------- /mods/archived/flood/levels/level_sa_entry.lvl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/flood/levels/level_sa_entry.lvl -------------------------------------------------------------------------------- /mods/archived/flying-gorilla/textures/ad.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/flying-gorilla/textures/ad.tex -------------------------------------------------------------------------------- /mods/archived/hats/actors/bonebrimold_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/hats/actors/bonebrimold_geo.bin -------------------------------------------------------------------------------- /mods/archived/hats/actors/drheadband_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/hats/actors/drheadband_geo.bin -------------------------------------------------------------------------------- /mods/archived/l4d2-hud/textures/boxsquare.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/l4d2-hud/textures/boxsquare.png -------------------------------------------------------------------------------- /mods/archived/l4d2-hud/textures/boxsquare.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/l4d2-hud/textures/boxsquare.tex -------------------------------------------------------------------------------- /mods/archived/l4d2-hud/textures/gradient.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/l4d2-hud/textures/gradient.png -------------------------------------------------------------------------------- /mods/archived/l4d2-hud/textures/gradient.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/l4d2-hud/textures/gradient.tex -------------------------------------------------------------------------------- /mods/archived/l4d2-hud/textures/luigi_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/l4d2-hud/textures/luigi_down.png -------------------------------------------------------------------------------- /mods/archived/l4d2-hud/textures/luigi_down.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/l4d2-hud/textures/luigi_down.tex -------------------------------------------------------------------------------- /mods/archived/l4d2-hud/textures/mario_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/l4d2-hud/textures/mario_down.png -------------------------------------------------------------------------------- /mods/archived/l4d2-hud/textures/mario_down.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/l4d2-hud/textures/mario_down.tex -------------------------------------------------------------------------------- /mods/archived/l4d2-hud/textures/toad_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/l4d2-hud/textures/toad_down.png -------------------------------------------------------------------------------- /mods/archived/l4d2-hud/textures/toad_down.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/l4d2-hud/textures/toad_down.tex -------------------------------------------------------------------------------- /mods/archived/l4d2-hud/textures/wario_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/l4d2-hud/textures/wario_down.png -------------------------------------------------------------------------------- /mods/archived/l4d2-hud/textures/wario_down.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/l4d2-hud/textures/wario_down.tex -------------------------------------------------------------------------------- /mods/archived/lego-hud/actors/red_coin_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/lego-hud/actors/red_coin_geo.bin -------------------------------------------------------------------------------- /mods/archived/lego-hud/textures/heart_half.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/lego-hud/textures/heart_half.png -------------------------------------------------------------------------------- /mods/archived/lego-hud/textures/heart_half.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/lego-hud/textures/heart_half.tex -------------------------------------------------------------------------------- /mods/archived/lgbt-goombas/actors/star_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/lgbt-goombas/actors/star_geo.bin -------------------------------------------------------------------------------- /mods/day-night-cycle/actors/dnc_skybox_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/day-night-cycle/actors/dnc_skybox_geo.bin -------------------------------------------------------------------------------- /mods/day-night-cycle/data/bhvDNCNoSkybox.bhv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/day-night-cycle/data/bhvDNCNoSkybox.bhv -------------------------------------------------------------------------------- /mods/day-night-cycle/sound/night_level_hot.m64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/day-night-cycle/sound/night_level_hot.m64 -------------------------------------------------------------------------------- /mods/night-mode/actors/nm_apparition_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/actors/nm_apparition_geo.bin -------------------------------------------------------------------------------- /mods/night-mode/sound/night_level_freezing.m64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/sound/night_level_freezing.m64 -------------------------------------------------------------------------------- /mods/night-mode/textures/nm_jumpscare_01.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/textures/nm_jumpscare_01.tex -------------------------------------------------------------------------------- /mods/night-mode/textures/nm_jumpscare_02.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/textures/nm_jumpscare_02.tex -------------------------------------------------------------------------------- /mods/night-mode/textures/nm_jumpscare_03.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/textures/nm_jumpscare_03.tex -------------------------------------------------------------------------------- /mods/night-mode/textures/nm_jumpscare_04.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/textures/nm_jumpscare_04.tex -------------------------------------------------------------------------------- /mods/night-mode/textures/nm_jumpscare_05.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/textures/nm_jumpscare_05.tex -------------------------------------------------------------------------------- /mods/night-mode/textures/nm_jumpscare_06.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/textures/nm_jumpscare_06.tex -------------------------------------------------------------------------------- /mods/night-mode/textures/nm_jumpscare_07.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/textures/nm_jumpscare_07.tex -------------------------------------------------------------------------------- /mods/night-mode/textures/nm_jumpscare_08.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/textures/nm_jumpscare_08.tex -------------------------------------------------------------------------------- /mods/night-mode/textures/nm_jumpscare_09.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/textures/nm_jumpscare_09.tex -------------------------------------------------------------------------------- /mods/night-mode/textures/nm_jumpscare_10.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/textures/nm_jumpscare_10.tex -------------------------------------------------------------------------------- /mods/night-mode/textures/nm_jumpscare_11.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/textures/nm_jumpscare_11.tex -------------------------------------------------------------------------------- /mods/night-mode/textures/nm_jumpscare_12.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/textures/nm_jumpscare_12.tex -------------------------------------------------------------------------------- /mods/night-mode/textures/nm_jumpscare_13.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/textures/nm_jumpscare_13.tex -------------------------------------------------------------------------------- /mods/night-mode/textures/nm_jumpscare_14.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/textures/nm_jumpscare_14.tex -------------------------------------------------------------------------------- /mods/night-mode/textures/nm_jumpscare_15.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/textures/nm_jumpscare_15.tex -------------------------------------------------------------------------------- /mods/night-mode/textures/nm_jumpscare_16.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/textures/nm_jumpscare_16.tex -------------------------------------------------------------------------------- /mods/night-mode/textures/nm_jumpscare_17.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/textures/nm_jumpscare_17.tex -------------------------------------------------------------------------------- /mods/night-mode/textures/nm_jumpscare_18.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/textures/nm_jumpscare_18.tex -------------------------------------------------------------------------------- /mods/night-mode/textures/nm_jumpscare_19.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/textures/nm_jumpscare_19.tex -------------------------------------------------------------------------------- /mods/night-mode/textures/nm_jumpscare_20.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/textures/nm_jumpscare_20.tex -------------------------------------------------------------------------------- /mods/night-mode/textures/nm_jumpscare_21.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/textures/nm_jumpscare_21.tex -------------------------------------------------------------------------------- /mods/night-mode/textures/nm_jumpscare_22.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/textures/nm_jumpscare_22.tex -------------------------------------------------------------------------------- /mods/night-mode/textures/nm_jumpscare_23.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/textures/nm_jumpscare_23.tex -------------------------------------------------------------------------------- /mods/night-mode/textures/nm_jumpscare_24.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/textures/nm_jumpscare_24.tex -------------------------------------------------------------------------------- /mods/night-mode/textures/nm_jumpscare_25.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/textures/nm_jumpscare_25.tex -------------------------------------------------------------------------------- /mods/night-mode/textures/nm_jumpscare_26.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/textures/nm_jumpscare_26.tex -------------------------------------------------------------------------------- /mods/night-mode/textures/nm_jumpscare_27.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/textures/nm_jumpscare_27.tex -------------------------------------------------------------------------------- /mods/night-mode/textures/nm_jumpscare_28.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/textures/nm_jumpscare_28.tex -------------------------------------------------------------------------------- /mods/night-mode/textures/nm_jumpscare_29.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/night-mode/textures/nm_jumpscare_29.tex -------------------------------------------------------------------------------- /mods/underworld/actors/castle_rising_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/underworld/actors/castle_rising_geo.bin -------------------------------------------------------------------------------- /mods/underworld/actors/soul_star_noise_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/underworld/actors/soul_star_noise_geo.bin -------------------------------------------------------------------------------- /mods/underworld/textures/effect_0B00684C.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/underworld/textures/effect_0B00684C.tex -------------------------------------------------------------------------------- /mods/underworld/textures/underworld_star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/underworld/textures/underworld_star.png -------------------------------------------------------------------------------- /mods/underworld/textures/underworld_star.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/underworld/textures/underworld_star.tex -------------------------------------------------------------------------------- /mods/weather-cycle-dx/actors/wc_aurora_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/weather-cycle-dx/actors/wc_aurora_geo.bin -------------------------------------------------------------------------------- /mods/weather-cycle-dx/data/bhvWCLightning.bhv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/weather-cycle-dx/data/bhvWCLightning.bhv -------------------------------------------------------------------------------- /mods/archived/flood/sound/00_pinball_custom.m64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/flood/sound/00_pinball_custom.m64 -------------------------------------------------------------------------------- /mods/archived/flying-gorilla/actors/cube_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/flying-gorilla/actors/cube_geo.bin -------------------------------------------------------------------------------- /mods/archived/flying-gorilla/flying-gorilla.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/flying-gorilla/flying-gorilla.zip -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.0.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.0.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.1.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.1.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.2.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.2.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.3.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.3.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.4.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.4.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.5.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.5.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.6.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.6.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.7.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.7.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.8.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.8.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.9.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.9.rgba16.png -------------------------------------------------------------------------------- /mods/archived/l4d2-hud/textures/waluigi_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/l4d2-hud/textures/waluigi_down.png -------------------------------------------------------------------------------- /mods/archived/l4d2-hud/textures/waluigi_down.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/l4d2-hud/textures/waluigi_down.tex -------------------------------------------------------------------------------- /mods/archived/lego-hud/actors/blue_coin_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/lego-hud/actors/blue_coin_geo.bin -------------------------------------------------------------------------------- /mods/archived/lego-hud/actors/bowser_key_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/lego-hud/actors/bowser_key_geo.bin -------------------------------------------------------------------------------- /mods/archived/lego-hud/textures/heart_empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/lego-hud/textures/heart_empty.png -------------------------------------------------------------------------------- /mods/archived/lego-hud/textures/heart_empty.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/lego-hud/textures/heart_empty.tex -------------------------------------------------------------------------------- /mods/archived/lgbt-goombas/actors/goomba_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/lgbt-goombas/actors/goomba_geo.bin -------------------------------------------------------------------------------- /mods/day-night-cycle/data/bhvBirdsSoundLoop.bhv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/day-night-cycle/data/bhvBirdsSoundLoop.bhv -------------------------------------------------------------------------------- /mods/day-night-cycle/sound/night_level_grass.m64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/day-night-cycle/sound/night_level_grass.m64 -------------------------------------------------------------------------------- /mods/day-night-cycle/sound/night_level_slide.m64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/day-night-cycle/sound/night_level_slide.m64 -------------------------------------------------------------------------------- /mods/day-night-cycle/sound/night_level_snow.m64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/day-night-cycle/sound/night_level_snow.m64 -------------------------------------------------------------------------------- /mods/day-night-cycle/sound/night_level_water.m64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/day-night-cycle/sound/night_level_water.m64 -------------------------------------------------------------------------------- /mods/underworld/textures/compass_camera_dial.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/underworld/textures/compass_camera_dial.png -------------------------------------------------------------------------------- /mods/underworld/textures/compass_camera_dial.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/underworld/textures/compass_camera_dial.tex -------------------------------------------------------------------------------- /mods/underworld/textures/compass_player_dial.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/underworld/textures/compass_player_dial.png -------------------------------------------------------------------------------- /mods/underworld/textures/compass_player_dial.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/underworld/textures/compass_player_dial.tex -------------------------------------------------------------------------------- /mods/weather-cycle-dx/data/bhvWCRainDroplet.bhv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/weather-cycle-dx/data/bhvWCRainDroplet.bhv -------------------------------------------------------------------------------- /mods/archived/climb-the-tower/climb-the-tower.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/climb-the-tower/climb-the-tower.zip -------------------------------------------------------------------------------- /mods/archived/flood/actors/launchpad_collision.col: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/flood/actors/launchpad_collision.col -------------------------------------------------------------------------------- /mods/archived/flying-gorilla/actors/water_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/flying-gorilla/actors/water_geo.bin -------------------------------------------------------------------------------- /mods/archived/galaxy-star-select/textures/back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/galaxy-star-select/textures/back.png -------------------------------------------------------------------------------- /mods/archived/galaxy-star-select/textures/back.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/galaxy-star-select/textures/back.tex -------------------------------------------------------------------------------- /mods/archived/islands/levels/level_wmotr_entry.lvl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/levels/level_wmotr_entry.lvl -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.10.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.10.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.11.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.11.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.12.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.12.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.13.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.13.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.14.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.14.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.15.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.15.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.16.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.16.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.17.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.17.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.18.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.18.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.19.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.19.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.20.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.20.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.21.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.21.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.22.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.22.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.23.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.23.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.24.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.24.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.25.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.25.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.26.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.26.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.27.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.27.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.28.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.28.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.29.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.29.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.30.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.30.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.31.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.31.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.32.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.32.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.33.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.33.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.34.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.34.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.35.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.35.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.36.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.36.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.37.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.37.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.38.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.38.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.39.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.39.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.40.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.40.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.41.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.41.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.42.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.42.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.43.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.43.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.44.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.44.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.45.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.45.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.46.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.46.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.47.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.47.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.48.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.48.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.49.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.49.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.50.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.50.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.51.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.51.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.52.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.52.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.53.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.53.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.54.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.54.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.55.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.55.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.56.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.56.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.57.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.57.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.58.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.58.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.59.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.59.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.60.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.60.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.61.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.61.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.62.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.62.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/skybox/sunset.63.rgba16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/skybox/sunset.63.rgba16.png -------------------------------------------------------------------------------- /mods/archived/islands/textures/effect_0B00684C.tex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/islands/textures/effect_0B00684C.tex -------------------------------------------------------------------------------- /mods/archived/lego-hud/actors/yellow_coin_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/lego-hud/actors/yellow_coin_geo.bin -------------------------------------------------------------------------------- /mods/archived/lgbt-goombas/actors/goomba_bi_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/lgbt-goombas/actors/goomba_bi_geo.bin -------------------------------------------------------------------------------- /mods/archived/recolorable-stars/actors/star_geo.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AgentXLP/coopdx-mods/HEAD/mods/archived/recolorable-stars/actors/star_geo.bin -------------------------------------------------------------------------------- /mods/day-night-cycle/data/bhvBird.bhv: -------------------------------------------------------------------------------- 1 | bhvBird'9I &'PNTRbirds_seg5_anims_050009E8("F2 FUNC< 4 | Watch the video 5 | 6 | 7 | This mod adds a flood escape gamemode to sm64ex-coop, you must escape the flood and reach the top of the level before everything is flooded. 8 | -------------------------------------------------------------------------------- /mods/archived/islands/README.md: -------------------------------------------------------------------------------- 1 | # Islands 2 | 3 | islands 4 | islands2 5 | 6 | This mod just replaces Wing Mario Over the Rainbow with my own custom sunset themed map. 7 | -------------------------------------------------------------------------------- /mods/pet-propeller-flyguy/README.md: -------------------------------------------------------------------------------- 1 | # [PET] Propeller Fly Guy 2 | 3 | This mod adds a fly guy pet that behaves like the propeller blocks from New Super Mario Bros. Wii. 4 | 5 | To use the Propeller Fly Guy, first spawn one through the pets menu, grab him and jump in the air and then press [A]. You will propel upwards and eventually begin to descend. To slow your descent, press [A] in rapid succession. To speed up your descent, hold down [Z]. -------------------------------------------------------------------------------- /mods/archived/recolorable-stars/main.lua: -------------------------------------------------------------------------------- 1 | -- name: Recolorable Stars 2 | -- description: Recolorable Stars\nBy \\#ec7731\\Agent X\\#dcdcdc\\\n\nThis mod adds recolorable stars to sm64ex-coop. I would have released this as a DynOS pack had it not been for stars always matching the color palette of the host which was fixable with Lua. 3 | 4 | --- @param o Object 5 | local function bhv_star_init(o) 6 | o.globalPlayerIndex = gNetworkPlayers[0].globalIndex 7 | end 8 | 9 | id_bhvStar = hook_behavior(id_bhvStar, OBJ_LIST_LEVEL, false, bhv_star_init, nil) -------------------------------------------------------------------------------- /mods/archived/lego-hud/README.md: -------------------------------------------------------------------------------- 1 | # LEGO HUD 2 | 3 | legohud1 4 | legohud2 5 | 6 | https://user-images.githubusercontent.com/44549182/197371600-cf1b0dd8-7db7-4f98-a257-12f8f224bf05.mp4 7 | 8 | This mod adds the LEGO HUD into sm64ex-coop with the stud bar, True Jedi, minikits, bricks and studs. 9 | -------------------------------------------------------------------------------- /mods/archived/l4d2-hud/README.md: -------------------------------------------------------------------------------- 1 | # Left 4 Dead 2 HUD 2 | 3 | https://user-images.githubusercontent.com/44549182/189468165-475396e2-124b-46c9-b834-6a630a7b57e1.mp4 4 | 5 | This mod adds the Left 4 Dead 2 HUD into sm64ex-coop with other players' health bars on the side too, you can cycle through them with DPad left and DPad right. This mod is fully cross compatible and fully integrated with Downing as well so players will show as incapacitated on their healthbars and everything else. 6 | 7 | If SM64 health is off (by default it is) you can pick up 1 ups and use them as first aid kits to heal. -------------------------------------------------------------------------------- /mods/weather-cycle-dx/README.md: -------------------------------------------------------------------------------- 1 | # Weather Cycle DX 2 | 3 | This mod adds a weather cycle system with cloudy skies, rain, and storms to sm64coopdx. It uses Day Night Cycle DX as a base library, meaning you need to have it enabled in order to use this mod. There is also a toggleable Aurora Borealis that starts after midnight. I've worked on this mod for months now and managed to optimize the storm to run at 200-300 microseconds, which is an impressive number especially compared to the earlier 6000 microseconds. 4 | 5 | 6 | Special thanks to Floralys for the original concept. 7 | 8 | Special thanks to eros71 for saving the mod! -------------------------------------------------------------------------------- /mods/archived/lgbt-goombas/README.md: -------------------------------------------------------------------------------- 1 | # LGBT Goombas 2 | 3 | This mod adds LGBT flag Goombas, toggle with /lgbt [on|off] 4 | 5 | Pan Goomba: Faster in snow levels, roll replaces slide kick. 6 | 7 | Bi Goomba: Improved moveset Goomba, has a spin jump and good air control. 8 | 9 | Trans Goomba: Loosely based off of Celeste's moveset with double jumps, dashing and wall climbing. 10 | 11 | Ace Goomba: Crouch and hold down X or Y to charge up a power jump. 12 | 13 | Lesbian Goomba: Swims faster and has a special spin attack. 14 | \ 15 | \ 16 | \ 17 | Special thanks to 0x2480 for creating the strawberry model that goes over stars. -------------------------------------------------------------------------------- /mods/archived/climb-the-tower/README.md: -------------------------------------------------------------------------------- 1 | # Climb the Tower 2 | 3 | https://www.youtube.com/watch?v=b4xx_ZeL7do 4 | 5 | ctt1 6 | ctt3 7 | 8 | This gamemode revolves around getting the fastest time and getting to the top of the tower the fastest, you can view the scores with /scoreboard 9 | If you wish to play another gamemode on this map (e.g. manhunt / hide and seek) then run /ctt off on host. -------------------------------------------------------------------------------- /mods/bb-death/README.md: -------------------------------------------------------------------------------- 1 | # Breaking Bad Death Cutscene 2 | 3 | This mod replaces the normal death sequence with the final shot of Breaking Bad where the camera pans away from Walter White's body. Bubbling is automatically disabled and the sequence is only triggered by dying standing, on your back, on your stomach, suffocating, being electrocuted or drowning. 4 | 5 | When a player dies, the music will play and get louder the closer you are to the body and quieter the farther away. The vanilla music also fades out the closer you are to the body. 6 | 7 | Press [A] or [B] to skip the cutscene. 8 | 9 | Run /bb-gameover to toggle the death cutscene only playing if you have 0 lives left. -------------------------------------------------------------------------------- /mods/underworld/README.md: -------------------------------------------------------------------------------- 1 | # Super Mario 64: The Underworld 2 | 3 | 4 | Watch the video 5 | 6 | 7 | Mario is pulled into another land some call The Underworld... 8 | He must make his way through this condemned land and help in both the escape of himself and someone he thinks he can trust from the Underworld... 9 | This is a 30 star romhack with a fully custom cutscene system, dialog system and boss fight entirely in Lua created for the sm64ex-coop level competition. 10 | 11 | * Special thanks to Squishy for the compass textures 12 | * Special thanks to Trashcam for the boss theme -------------------------------------------------------------------------------- /mods/easy-ceiling-cling.lua: -------------------------------------------------------------------------------- 1 | -- name: Easy Ceiling Cling 2 | -- description: Easy Ceiling Cling\nBy \\#ec7731\\Agent X\\#dcdcdc\\\n\nThis mod adds improved ceiling hang detection system so you can now begin clinging to ceiling from actions outside\nof just the single and double jump. 3 | -- pausable: true 4 | 5 | local set_mario_action = set_mario_action 6 | 7 | --- @param m MarioState 8 | local function before_phys_step(m) 9 | if m.ceil ~= nil and m.ceil.type == SURFACE_HANGABLE and (m.action == ACT_TRIPLE_JUMP or m.action == ACT_WALL_KICK_AIR) and (m.input & INPUT_A_DOWN) ~= 0 then 10 | if m.pos.y + 180 > m.ceil.lowerY then 11 | set_mario_action(m, ACT_START_HANGING, 0) 12 | end 13 | end 14 | end 15 | 16 | hook_event(HOOK_BEFORE_PHYS_STEP, before_phys_step) -------------------------------------------------------------------------------- /mods/night-mode/a-constants.lua: -------------------------------------------------------------------------------- 1 | -- version 2 | NM_VERSION_MAJOR = 1 3 | NM_VERSION_MINOR = 0 4 | NM_VERSION_PATCH = 1 5 | NM_VERSION = math.tointeger(string.format("%d%d%d", NM_VERSION_MAJOR, NM_VERSION_MINOR, NM_VERSION_PATCH)) 6 | 7 | E_MODEL_NM_TTC_VOID = smlua_model_util_get_id("nm_ttc_void_geo") 8 | E_MODEL_NM_BBH_VOID = smlua_model_util_get_id("nm_bbh_void_geo") 9 | E_MODEL_NM_APPARITION = smlua_model_util_get_id("nm_apparition_geo") 10 | 11 | STREAM_PIANO = audio_stream_load("piano.ogg") 12 | 13 | SAMPLE_FLASHLIGHT = audio_sample_load("flashlight.ogg") 14 | SAMPLE_JUMPSCARE = audio_sample_load("jumpscare.ogg") 15 | 16 | SEQ_LEVEL_FREEZING = SEQ_COUNT 17 | 18 | COLOR_NIGHT = { r = 60, g = 60, b = 120 } 19 | COLOR_BLUE = { r = 150, g = 200, b = 255 } 20 | COLOR_RED = { r = 255, g = 0, b = 0 } -------------------------------------------------------------------------------- /mods/archived/flying-gorilla/a-utils.lua: -------------------------------------------------------------------------------- 1 | function switch(param, case_table) 2 | local case = case_table[param] 3 | if case then return case() end 4 | local def = case_table['default'] 5 | return def and def() or nil 6 | end 7 | 8 | function approach_number(current, target, inc, dec) 9 | if current < target then 10 | current = current + inc 11 | if current > target then 12 | current = target 13 | end 14 | else 15 | current = current - dec 16 | if current < target then 17 | current = target 18 | end 19 | end 20 | return current 21 | end 22 | 23 | function if_then_else(cond, if_true, if_false) 24 | if cond then return if_true end 25 | return if_false 26 | end 27 | 28 | function s16(num) 29 | num = math.floor(num) & 0xFFFF 30 | if num >= 32768 then return num - 65536 end 31 | return num 32 | end -------------------------------------------------------------------------------- /mods/archived/climb-the-tower/yoshi.lua: -------------------------------------------------------------------------------- 1 | triggered = false 2 | 3 | --- @param o Object 4 | function bhv_stationary_yoshi_init(o) 5 | o.oFlags = OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE 6 | o.oInteractType = INTERACT_IGLOO_BARRIER 7 | o.oAnimations = gObjectAnimations.yoshi_seg5_anims_05024100 8 | 9 | o.oPosY = find_floor_height(o.oPosX, o.oPosY + 200.0, o.oPosZ) 10 | 11 | o.oIntangibleTimer = 0 12 | o.hitboxRadius = 160 13 | o.hitboxHeight = 150 14 | end 15 | 16 | --- @param o Object 17 | function bhv_stationary_yoshi_loop(o) 18 | cur_obj_init_animation(0) 19 | if dist_between_objects(o, gMarioStates[0].marioObj) < 300 and triggered == false then 20 | triggered = true 21 | play_puzzle_jingle() 22 | doubleJumps = doubleJumps + 2 23 | end 24 | 25 | o.header.gfx.angle.y = nearest_mario_state_to_object(o).faceAngle.y + 0x8000 26 | end 27 | 28 | id_bhvStationaryYoshi = hook_behavior(nil, OBJ_LIST_GENACTOR, true, bhv_stationary_yoshi_init, bhv_stationary_yoshi_loop) -------------------------------------------------------------------------------- /mods/day-night-cycle/README.md: -------------------------------------------------------------------------------- 1 | # Day Night Cycle DX 2 | 3 | This mod adds a fully featured day & night cycle system with night, sunrise, day and sunset to sm64coopdx. It includes an API and hook system for interfacing with several components of the mod externally. This mod was originally made for sm64ex-coop but has been practically rewritten for sm64coopdx and it's new Lua functionality. 4 | 5 | Days last 24 minutes and with the /time command, you can set/scale/query the time, add to the time, change the format from AM/PM, sync it with real life time, and toggle the night time music. 6 | 7 | There is also now a new menu in the pause menu for Day Night Cycle DX! 8 | 9 | Special thanks to MaiskX3 for the night time music. 10 | 11 | Special thanks to AngelicMiracles for the sunset, sunrise and night time skyboxes. 12 | 13 | Special thanks to eros71 for salvaging the mod files. 14 | 15 | ![Screenshot_20240630_115327](https://github.com/AgentXLP/agent-ex-coop-mods/assets/44549182/873b2066-33c9-4746-b2bb-d05ceb15101e) 16 | ![Screenshot_20240630_115154](https://github.com/AgentXLP/agent-ex-coop-mods/assets/44549182/1d586611-93e4-4218-b0e4-fc2c1bdfdda3) 17 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | CC BY-NC-ND 4.0 DEED License 2 | 3 | Copyright (c) 2022-2024 Agent-11 / Agent X 4 | 5 | You are free to: 6 | Share — copy and redistribute the material in any medium or format 7 | The licensor cannot revoke these freedoms as long as you follow the license terms. 8 | 9 | Under the following terms: 10 | Attribution — You must give appropriate credit , provide a link to the license, and indicate if changes were made . You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use. 11 | NonCommercial — You may not use the material for commercial purposes . 12 | NoDerivatives — If you remix, transform, or build upon the material, you may not distribute the modified material. 13 | No additional restrictions — You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. 14 | 15 | Notices: 16 | You do not have to comply with the license for elements of the material in the public domain or where your use is permitted by an applicable exception or limitation . 17 | 18 | No warranties are given. The license may not give you all of the permissions necessary for your intended use. For example, other rights such as publicity, privacy, or moral rights may limit how you use the material. -------------------------------------------------------------------------------- /mods/archived/flying-gorilla/infinite-map.lua: -------------------------------------------------------------------------------- 1 | E_MODEL_FLYING_GORILLA = smlua_model_util_get_id("flying_gorilla_geo") 2 | COL_FLYING_GORILLA = smlua_collision_util_get("flying_gorilla_collision") 3 | 4 | --- @param o Object 5 | function bhv_map_piece_init(o) 6 | o.oFlags = OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE 7 | o.collisionData = COL_FLYING_GORILLA 8 | o.oCollisionDistance = 9999 9 | o.header.gfx.skipInViewCheck = true 10 | end 11 | 12 | --- @param o Object 13 | function bhv_map_piece_loop(o) 14 | if gMarioStates[0].actionTimer ~= 0 then return end 15 | 16 | o.oPosZ = o.oPosZ - OFFSET_SPEED 17 | 18 | load_object_collision_model() 19 | end 20 | 21 | id_bhvMapPiece = hook_behavior(nil, OBJ_LIST_SURFACE, true, bhv_map_piece_init, bhv_map_piece_loop) 22 | 23 | function spawn_map_piece() 24 | spawn_non_sync_object( 25 | id_bhvMapPiece, 26 | E_MODEL_FLYING_GORILLA, 27 | 0, 0, (6000 * pieceCounter) - (gameTimer * OFFSET_SPEED), 28 | --- @param o Object 29 | function(o) 30 | o.oFaceAngleYaw = 0 31 | o.oFaceAnglePitch = 0 32 | o.oFaceAngleRoll = 0 33 | end 34 | ) 35 | pieceCounter = pieceCounter + 1 36 | if pieceCounter > 0 then 37 | spawn_obstacles() 38 | end 39 | end -------------------------------------------------------------------------------- /mods/gun-mod/a-constants.lua: -------------------------------------------------------------------------------- 1 | -- models 2 | E_MODEL_BULLET_HOLE = smlua_model_util_get_id("bullet_hole_geo") 3 | E_MODEL_SINGLE_ARM = smlua_model_util_get_id("arm_geo") 4 | E_MODEL_PISTOL = smlua_model_util_get_id("pistol_geo") 5 | E_MODEL_MAGNUM = smlua_model_util_get_id("magnum_geo") 6 | E_MODEL_AK47 = smlua_model_util_get_id("ak47_geo") 7 | E_MODEL_SHOTGUN = smlua_model_util_get_id("shotgun_geo") 8 | E_MODEL_ARROW = smlua_model_util_get_id("arrow_geo") 9 | E_MODEL_TROLL_EXPLOSION = smlua_model_util_get_id("troll_explosion_geo") 10 | 11 | -- textures 12 | TEX_CROSSHAIR = get_texture_info("gun_mod_crosshair") 13 | 14 | -- custom sounds 15 | SOUND_CUSTOM_IMPACT = audio_sample_load("impact.mp3") 16 | SOUND_CUSTOM_RICOCHET = audio_sample_load("ricochet.mp3") 17 | SOUND_CUSTOM_DRY = audio_sample_load("dry.mp3") 18 | SOUND_CUSTOM_BAD_TO_THE_BONE = audio_sample_load("bad_to_the_bone_riff.mp3") 19 | 20 | -- actions 21 | -- ACT_CUSTOM_MOVEMENT = allocate_mario_action(ACT_GROUP_CUTSCENE) 22 | 23 | -- packet ids 24 | PACKET_ATTACK = 0 25 | PACKET_SOUND = 1 26 | 27 | -- misc 28 | START_IN_FIRST_PERSON = true 29 | 30 | MAX_INVENTORY_SLOTS = 2 31 | 32 | HEALTH_SIGN = 30 33 | HEALTH_BREAKABLE_BOX = 30 34 | HEALTH_BOWLING_BALL = 75 35 | HEALTH_CHUCKYA = 60 36 | HEALTH_KING_BOBOMB = 200 37 | HEALTH_BOWSER = 300 -------------------------------------------------------------------------------- /mods/pos-display.lua: -------------------------------------------------------------------------------- 1 | -- name: Pos Display 2 | -- description: Pos Display\nBy \\#ec7731\\Agent X\\#dcdcdc\\\n\nThis mod renders your coordinates to the screen. 3 | -- pausable: true 4 | 5 | local djui_hud_set_resolution,djui_hud_set_font,djui_hud_get_screen_width,djui_hud_get_screen_height,djui_hud_set_color,djui_hud_measure_text,djui_hud_render_rect,djui_hud_print_text,math_floor = djui_hud_set_resolution,djui_hud_set_font,djui_hud_get_screen_width,djui_hud_get_screen_height,djui_hud_set_color,djui_hud_measure_text,djui_hud_render_rect,djui_hud_print_text,math.floor 6 | 7 | local function on_hud_render_behind() 8 | djui_hud_set_resolution(RESOLUTION_N64) 9 | djui_hud_set_font(FONT_NORMAL) 10 | 11 | local x = djui_hud_get_screen_width() * 0.84 12 | local y = djui_hud_get_screen_height() * 0.5 13 | 14 | djui_hud_set_color(0, 0, 0, 127) 15 | djui_hud_render_rect(x - 10, y + 1, djui_hud_measure_text("x: 000") + 3, 35) 16 | djui_hud_set_color(255, 255, 255, 255) 17 | local pos = gMarioStates[0].pos 18 | y = y - 1 19 | djui_hud_print_text("x: " .. math_floor(pos.x), x - 7, y, 0.5) 20 | djui_hud_print_text("y: " .. math_floor(pos.y), x - 7, y + 10, 0.5) 21 | djui_hud_print_text("z: " .. math_floor(pos.z), x - 7, y + 21, 0.5) 22 | end 23 | 24 | hook_event(HOOK_ON_HUD_RENDER_BEHIND, on_hud_render_behind) -------------------------------------------------------------------------------- /mods/gun-mod/c-dialog-arrow.lua: -------------------------------------------------------------------------------- 1 | local seen = false 2 | 3 | --- @param o Object 4 | local function bhv_dialog_arrow_init(o) 5 | o.oFlags = OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE 6 | 7 | o.parentObj = obj_get_nearest_object_with_behavior_id(o, id_bhvMessagePanel) 8 | if o.parentObj == nil then 9 | obj_mark_for_deletion(o) 10 | return 11 | end 12 | 13 | o.oDrawingDistance = o.parentObj.oDrawingDistance 14 | o.oPosX = o.parentObj.oPosX 15 | o.oPosY = o.parentObj.oPosY + 150 16 | o.oPosZ = o.parentObj.oPosZ 17 | end 18 | 19 | --- @param o Object 20 | local function bhv_dialog_arrow_loop(o) 21 | o.oGraphYOffset = math.sin(o.oTimer * 0.1) * 20 22 | 23 | if gMarioStates[0].interactObj == o.parentObj then 24 | seen = true 25 | obj_mark_for_deletion(o) 26 | elseif o.parentObj.oInteractType == 0 then 27 | obj_mark_for_deletion(o) 28 | end 29 | end 30 | 31 | local id_bhvDialogArrow = hook_behavior(nil, OBJ_LIST_UNIMPORTANT, true, bhv_dialog_arrow_init, bhv_dialog_arrow_loop) 32 | 33 | function spawn_dialog_arrow() 34 | if gNetworkPlayers[0].currLevelNum ~= LEVEL_CASTLE_GROUNDS or not level_is_vanilla_level(LEVEL_CASTLE_GROUNDS) or seen then return end 35 | 36 | spawn_non_sync_object( 37 | id_bhvDialogArrow, 38 | E_MODEL_ARROW, 39 | -1567, 386, 3492, 40 | nil 41 | ) 42 | end -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Agent X's sm64coopdx Mods 2 | This repo contains every sm64ex-coop/sm64coopdx mod I have made publicly. 3 | 4 | Some mods I make aren't as popular as I wanted them to be or drifted out of relevancy, you can find those mods in the `archived` folder. 5 | 6 | I designed this git repo to fit in the AppData folder of the game, which is why mods are in a subfolder and stuff like `tmp` is excluded in the `.gitignore`. 7 | 8 | To download single file mods click on the link and then press the "Raw" button then press CTRL S to save it. 9 | 10 | ## Mod Downloads 11 | 12 | [Gun Mod DX](./mods/gun-mod/gun-mod.zip) 13 | 14 | [Pos Display](./mods/pos-display.lua) 15 | 16 | [Easy Ceiling Cling](./mods/easy-ceiling-cling.lua) 17 | 18 | [Door Bust](./mods/door-bust.lua) 19 | 20 | [Day Night Cycle DX](./mods/day-night-cycle/day-night-cycle.zip) 21 | 22 | [Super Mario 64: The Underworld](./mods/underworld/underworld.zip) 23 | 24 | [Noclip](./mods/noclip.lua) 25 | 26 | [Action Display](./mods/action-display.lua) 27 | 28 | [Breaking Bad Death Cutscene](./mods/bb-death/bb-death.zip) 29 | 30 | [[PET] Propeller Fly Guy](./mods/pet-propeller-flyguy/pet-propeller-flyguy.zip) 31 | 32 | [Weather Cycle DX](./mods/weather-cycle-dx/weather-cycle-dx.zip) 33 | 34 | [Environment Tint](./mods/environment-tint.lua) 35 | 36 | [Night Mode](./mods/night-mode/night-mode.zip) 37 | 38 | [Hugging DX](./mods/hugging-dx.lua) -------------------------------------------------------------------------------- /mods/archived/climb-the-tower/launchpad.lua: -------------------------------------------------------------------------------- 1 | -- Launchpad ported from sm64js; texture by 0x2480 2 | E_MODEL_LAUNCHPAD = smlua_model_util_get_id("launchpad_geo") 3 | COL_LAUNCHPAD = smlua_collision_util_get("launchpad_collision") 4 | 5 | function bhv_launchpad_init(o) 6 | o.oFlags = OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE 7 | o.oCollisionDistance = 500 8 | o.collisionData = COL_LAUNCHPAD 9 | obj_scale(o, 0.85) 10 | end 11 | function bhv_launchpad_loop(o) 12 | local m = nearest_mario_state_to_object(o) 13 | if m.marioObj.platform == o then 14 | play_mario_jump_sound(m) 15 | if o.oBehParams2ndByte ~= 0x69 then -- humor 16 | set_mario_action(m, ACT_TWIRLING, 0) 17 | m.vel.y = o.oBehParams2ndByte 18 | else 19 | spawn_non_sync_object( 20 | id_bhvWingCap, 21 | E_MODEL_MARIOS_WING_CAP, 22 | m.pos.x + m.vel.x, m.pos.y + m.vel.y, m.pos.z + m.vel.z, 23 | nil 24 | ) 25 | vec3f_set(m.angleVel, 0, 0, 0) 26 | set_mario_action(m, ACT_FLYING_TRIPLE_JUMP, 0) 27 | m.forwardVel = m.forwardVel + 45 28 | m.vel.y = 55 29 | m.faceAngle.y = 0x4000 30 | end 31 | end 32 | load_object_collision_model() 33 | end 34 | 35 | id_bhvLaunchpad = hook_behavior(nil, OBJ_LIST_SURFACE, true, bhv_launchpad_init, bhv_launchpad_loop) -------------------------------------------------------------------------------- /mods/night-mode/shading.lua: -------------------------------------------------------------------------------- 1 | -- localize functions to improve performance 2 | local sins,coss,calculate_pitch,vec3f_sub,set_lighting_dir = sins,coss,calculate_pitch,vec3f_sub,set_lighting_dir 3 | 4 | --- @param vec Vec3f 5 | --- @param rotate Vec3f 6 | --- Rotates `dest` around the Z, Y, and X axes 7 | local function translate_to_worldspace(vec, rotate) 8 | local sx = sins(rotate.x) 9 | local cx = coss(rotate.x) 10 | local sy = sins(rotate.y) 11 | local cy = coss(rotate.y) 12 | local sz = sins(rotate.z) 13 | local cz = coss(rotate.z) 14 | 15 | -- x axis 16 | local xz = vec.x * cz - vec.y * sz 17 | local yz = vec.x * sz + vec.y * cz 18 | local zz = vec.z 19 | 20 | -- y axis 21 | local xy = xz * cy + zz * sy 22 | local yy = yz 23 | local zy = -xz * sy + zz * cy 24 | 25 | -- z axis 26 | vec.x = xy 27 | vec.y = yy * cx - zy * sx 28 | vec.z = yy * sx + zy * cx 29 | 30 | return vec 31 | end 32 | 33 | function shading_update() 34 | local lightingDir = gVec3fOne() 35 | translate_to_worldspace(lightingDir, { 36 | x = -calculate_pitch(gLakituState.pos, gLakituState.focus), 37 | y = -calculate_pitch(gLakituState.pos, gLakituState.focus), 38 | z = gLakituState.roll 39 | }) 40 | vec3f_sub(lightingDir, { x = 0x28 / 0xFF, y = 0x28 / 0xFF, z = 0x28 / 0xFF }) 41 | 42 | set_lighting_dir(0, lightingDir.x) 43 | set_lighting_dir(1, lightingDir.y) 44 | set_lighting_dir(2, lightingDir.z) 45 | end -------------------------------------------------------------------------------- /utils/recolor_model.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import os 3 | 4 | partNames = [ 5 | "pants", 6 | "shirt", 7 | "gloves", 8 | "shoes", 9 | "hair", 10 | "skin", 11 | "cap", 12 | "metal" # custom 13 | ] 14 | 15 | metalPart = "metal" 16 | 17 | def get_parameter(argIndex, message, optional): 18 | returnValue = "" 19 | if len(sys.argv) > argIndex: 20 | returnValue = sys.argv[argIndex] 21 | elif not optional: 22 | returnValue = input(message) 23 | return returnValue 24 | 25 | def main(): 26 | if len(sys.argv) > 1 and sys.argv[1] == "--help": 27 | print('Example: python recolor_model.py "path/to/model.inc.c"') 28 | return 29 | 30 | path = get_parameter(1, "Enter path to model.inc.c: ", False) 31 | 32 | out = [] 33 | with open(path, "r") as f: 34 | lines = f.readlines() 35 | dir = os.path.dirname(path) 36 | name = os.path.basename(dir) 37 | 38 | binFile = os.path.join(dir.split(name)[0], f"{name}_geo.bin") 39 | if os.path.exists(binFile): 40 | os.remove(binFile) 41 | 42 | for line in lines: 43 | for part in partNames: 44 | for i in range(1, 10): 45 | light = f"gsSPSetLights1({name}_{part}{i if i > 1 else ''}_lights)," 46 | if light in line: 47 | line = line.replace(light, f"gsSPCopyLightsPlayerPart({part.upper()}),").replace("METAL", metalPart.upper()) 48 | out.append(line) 49 | 50 | with open(path, "w") as f: 51 | f.write("".join(out)) 52 | 53 | main() -------------------------------------------------------------------------------- /constants.lua: -------------------------------------------------------------------------------- 1 | -- This is for the VSCode Lua plugin. 2 | 3 | --- @type BehaviorId 4 | bhvDNCSkybox = 0 5 | 6 | --- @type BehaviorId 7 | bhvDNCNoSkybox = 0 8 | 9 | --- @type BehaviorId 10 | bhvWCLightning = 0 11 | 12 | --- @type BehaviorId 13 | bhvWCRainDroplet = 0 14 | 15 | --- @type BehaviorId 16 | bhvWCSkybox = 0 17 | 18 | --- @type BehaviorId 19 | bhvWCAurora = 0 20 | 21 | --- @type BehaviorId 22 | bhvWPet = 0 23 | 24 | --- @type BehaviorId 25 | bhvNMFlashlight = 0 26 | 27 | --- @type BehaviorId 28 | bhvNMObjectLight = 0 29 | 30 | --- @type BehaviorId 31 | bhvNMBowserLight = 0 32 | 33 | --- @type BehaviorId 34 | bhvNMApparition = 0 35 | 36 | --- @type BehaviorId 37 | bhvUWFog = 0 38 | 39 | --- @type BehaviorId 40 | bhvUWObjectLight = 0 41 | 42 | --- @type BehaviorId 43 | bhvUWLevelCutscene = 0 44 | 45 | --- @type BehaviorId 46 | bhvUWDialogPrompt = 0 47 | 48 | --- @type BehaviorId 49 | bhvUWPlaque = 0 50 | 51 | --- @type BehaviorId 52 | bhvUWCutsceneStar = 0 53 | 54 | --- @type BehaviorId 55 | bhvUWLightTower = 0 56 | 57 | --- @type BehaviorId 58 | bhvUWLightTowerStar = 0 59 | 60 | --- @type BehaviorId 61 | bhvUWRegionLight = 0 62 | 63 | --- @type BehaviorId 64 | bhvUWSpring = 0 65 | 66 | --- @type BehaviorId 67 | bhvUWSpringChild = 0 68 | 69 | --- @type BehaviorId 70 | bhvUWBargainer = 0 71 | 72 | --- @type BehaviorId 73 | bhvUWLightOrb = 0 74 | 75 | --- @type BehaviorId 76 | bhvUWRisingCastle = 0 77 | 78 | --- @type BehaviorId 79 | bhvUWCastleWater = 0 80 | 81 | --- @type BehaviorId 82 | bhvUWNoiseStorm = 0 83 | 84 | --- @type BehaviorId 85 | bhvUWOldMan = 0 86 | 87 | --- @type BehaviorId 88 | bhvUWRegionSpawnpoint = 0 -------------------------------------------------------------------------------- /utils/lua_merge_mod.py: -------------------------------------------------------------------------------- 1 | import os 2 | import sys 3 | import shutil 4 | 5 | colors = { 6 | "default": '\033[37m', 7 | "purple": '\033[95m', 8 | "blue": '\033[94m', 9 | "cyan": '\033[96m', 10 | "green": '\033[92m', 11 | "red": '\033[91m', 12 | } 13 | 14 | mode = "Compilation" if sys.argv[2] == "--compile" else "Merging" 15 | 16 | print(f"{colors.get('blue')}sm64ex-coop Lua Folder Mod Merger\n{colors.get('cyan')}By Agent X\n{colors.get('purple')}Mode: {mode}{colors.get('default')}") 17 | 18 | info = "" 19 | code = "" 20 | 21 | for filename in os.listdir(sys.argv[1]): 22 | if filename.endswith(".lua"): 23 | with open(sys.argv[1] + "/" + filename, "r") as f: 24 | try: 25 | for line in f.readlines(): 26 | if line.startswith("-- name:") or line.startswith("-- incompatible:") or line.startswith("-- description:"): 27 | info += line 28 | else: 29 | code += line 30 | print(f"Merging {filename}...") 31 | code += "\n\n" 32 | except: 33 | print(f"{colors.get('red')}Failed to merge {filename}!{colors.get('default')}") 34 | 35 | with open("merged.lua", "w") as f: 36 | f.write(info + "\n" + code) 37 | if mode == "Merging": 38 | print(f"{colors.get('green')}Done! (merged Lua file outputted in merged.lua){colors.get('default')}") 39 | else: 40 | os.system("luac.exe merged.lua") 41 | shutil.copyfile("luac.out", sys.argv[3] + "/out.lua") 42 | os.remove("luac.out") 43 | print(f"{colors.get('green')}Done! (compiled Lua file outputted in compile directory){colors.get('default')}") 44 | -------------------------------------------------------------------------------- /mods/bb-death/a-utils.lua: -------------------------------------------------------------------------------- 1 | -- localize functions to improve performance 2 | local type = type 3 | 4 | --- @param cond boolean 5 | --- Human readable ternary operator 6 | function if_then_else(cond, ifTrue, ifFalse) 7 | if cond then return ifTrue end 8 | return ifFalse 9 | end 10 | 11 | --- @param m MarioState 12 | --- Checks if a player is currently active 13 | function active_player(m) 14 | local np = gNetworkPlayers[m.playerIndex] 15 | if m.playerIndex == 0 then 16 | return true 17 | end 18 | if not np.connected then 19 | return false 20 | end 21 | if np.currCourseNum ~= gNetworkPlayers[0].currCourseNum then 22 | return false 23 | end 24 | if np.currActNum ~= gNetworkPlayers[0].currActNum then 25 | return false 26 | end 27 | if np.currLevelNum ~= gNetworkPlayers[0].currLevelNum then 28 | return false 29 | end 30 | if np.currAreaIndex ~= gNetworkPlayers[0].currAreaIndex then 31 | return false 32 | end 33 | return true 34 | end 35 | 36 | --- @param reliable boolean 37 | --- @param packet integer 38 | --- @param dataTable table 39 | --- Sends a packet with the level, area, and act it came from 40 | function packet_send(reliable, packet, dataTable) 41 | dataTable = dataTable or {} 42 | dataTable.id = packet 43 | dataTable.level = gNetworkPlayers[0].currLevelNum 44 | dataTable.area = gNetworkPlayers[0].currAreaIndex 45 | dataTable.act = gNetworkPlayers[0].currActNum 46 | network_send(reliable, dataTable) 47 | end 48 | 49 | function tobool(v) 50 | local type = type(v) 51 | if type == "boolean" then 52 | return v 53 | elseif type == "number" then 54 | return v == 1 55 | elseif type == "string" then 56 | return v == "true" 57 | end 58 | return nil 59 | end -------------------------------------------------------------------------------- /mods/archived/mario-style/main.lua: -------------------------------------------------------------------------------- 1 | -- name: Mario Style 2 | -- description: Mario Style v1.1\n\\#dcdcdc\\By \\#ff7f00\\Agent X\\#ffff00\\\n\nFirst released mod to use DynOS custom\nanimations!\\#dcdcdc\\\nThis mod adds a custom star dance animation (Mario Style) as well as a tune to go along with it.\n\nIf you have a custom character model and wish for it to be compatible with Mario Style you must place the anims folder (the zip is on my GitHub) in your model's folder, this also works with DynOS packs so if you want to have Mario Style locally then you can use that. 3 | 4 | -- localize functions to improve performance 5 | local smlua_anim_util_set_animation,play_secondary_music,audio_sample_play,get_current_background_music_target_volume = smlua_anim_util_set_animation,play_secondary_music,audio_sample_play,get_current_background_music_target_volume 6 | 7 | SOUND_CUSTOM_GANGNAM = audio_sample_load("gangnam.mp3") 8 | 9 | --- @param m MarioState 10 | local function mario_update(m) 11 | if not gNetworkPlayers[m.playerIndex].connected then return end 12 | 13 | if m.marioObj.header.gfx.animInfo.animID == MARIO_ANIM_STAR_DANCE then 14 | smlua_anim_util_set_animation(m.marioObj, "mario_anim_gangnam") 15 | end 16 | 17 | if m.playerIndex == 0 and (m.action == ACT_STAR_DANCE_EXIT or m.action == ACT_STAR_DANCE_NO_EXIT) then 18 | play_secondary_music(SEQ_EVENT_CUTSCENE_COLLECT_STAR, 0, 0, 1) 19 | end 20 | end 21 | 22 | --- @param m MarioState 23 | local function on_set_mario_action(m) 24 | if not gNetworkPlayers[m.playerIndex].connected then return end 25 | 26 | if m.action == ACT_STAR_DANCE_EXIT or m.action == ACT_STAR_DANCE_NO_EXIT then 27 | audio_sample_play(SOUND_CUSTOM_GANGNAM, m.marioObj.header.gfx.cameraToObject, 5) 28 | elseif m.prevAction == ACT_STAR_DANCE_EXIT or m.prevAction == ACT_STAR_DANCE_NO_EXIT then 29 | play_secondary_music(SEQ_EVENT_CUTSCENE_COLLECT_STAR, get_current_background_music_target_volume(), 0, 1) 30 | end 31 | end 32 | 33 | hook_event(HOOK_MARIO_UPDATE, mario_update) 34 | hook_event(HOOK_ON_SET_MARIO_ACTION, on_set_mario_action) -------------------------------------------------------------------------------- /mods/README.md: -------------------------------------------------------------------------------- 1 | # Single File Mods 2 | 3 | ## Pos Display 4 | 5 | pos-display 6 | 7 | This mod adds just a simple position display on the side of your screen, works with all resolutions. 8 | 9 | ## Easy Ceiling Cling 10 | 11 | ceilinghang 12 | ceilinghang2 13 | 14 | This mod adds improved ceiling hang detection system so you can now begin clinging to ceiling from actions outside of just the single and double jump. 15 | 16 | ## Door Bust 17 | 18 | https://user-images.githubusercontent.com/44549182/197370948-e8e0cb0a-8c7e-4ee7-956e-071cbf25ef31.mp4 19 | 20 | This mod adds busting down doors by slide kicking into them, flying doors can deal damage to other players and normal doors will respawn after 10 seconds. 21 | 22 | ## Noclip 23 | 24 | noclip 25 | 26 | This mod is a utility mod that improves ACT_DEBUG_FREE_MOVE and makes it easily accessible without the development build. 27 | 28 | ## Action Display 29 | 30 | display 31 | 32 | This mod is a utility mod that renders your action and forward velocity to the screen. 33 | 34 | ## Environment Tint 35 | 36 | This mod tints your environment lighting based on the skybox. It's a very simple concept and execution, but I think the results look pretty nice. 37 | 38 | ## Hugging DX 39 | 40 | This mod adds hugging other players. It's fundamentally very simple but this is a remake of an old mod I made in 2022 but *better* now. You just go up to someone and a text prompt will show up instructing you to press Y to hug. Hugging someone will also heal you and them. I made this as a commission for my friend occam. -------------------------------------------------------------------------------- /mods/archived/lgbt-goombas/pan-moveset.lua: -------------------------------------------------------------------------------- 1 | function s16(num) 2 | num = math.floor(num) & 0xFFFF 3 | if num >= 32768 then return num - 65536 end 4 | return num 5 | end 6 | 7 | --- @param m MarioState 8 | function act_roll(m) 9 | m.particleFlags = m.particleFlags | PARTICLE_DUST 10 | 11 | m.faceAngle.y = s16(m.intendedYaw - approach_s32(s16(m.intendedYaw - m.faceAngle.y), 0, 0x400, 0x400)) 12 | if m.area.terrainType ~= TERRAIN_SNOW and m.area.terrainType ~= TERRAIN_SLIDE then 13 | mario_set_forward_vel(m, m.forwardVel - 0.4) 14 | else 15 | mario_set_forward_vel(m, 90) 16 | end 17 | 18 | if (m.input & INPUT_A_PRESSED) ~= 0 or (m.input & INPUT_B_PRESSED) ~= 0 then return set_jumping_action(m, ACT_FORWARD_ROLLOUT, 0) end 19 | if m.forwardVel < 25 then set_mario_action(m, ACT_DIVE_SLIDE, 0) end 20 | if (m.input & INPUT_Z_PRESSED) ~= 0 then return set_mario_action(m, ACT_CROUCH_SLIDE, 0) end 21 | 22 | common_slide_action(m, ACT_CROUCH_SLIDE, ACT_FREEFALL, MARIO_ANIM_FORWARD_SPINNING) 23 | end 24 | 25 | ACT_ROLL = allocate_mario_action(ACT_GROUP_MOVING | ACT_FLAG_MOVING | ACT_FLAG_ATTACKING | ACT_FLAG_SHORT_HITBOX | ACT_FLAG_BUTT_OR_STOMACH_SLIDE) 26 | 27 | --- @param m MarioState 28 | function before_pan_phys_step(m) 29 | if m.action ~= ACT_ROLL then 30 | if m.area.terrainType == TERRAIN_SNOW then 31 | m.peakHeight = m.pos.y 32 | m.vel.x = m.vel.x * 1.5 33 | m.vel.z = m.vel.z * 1.5 34 | else 35 | if m.area.terrainType == TERRAIN_SLIDE then m.peakHeight = m.pos.y end 36 | m.vel.x = m.vel.x * 1.25 37 | m.vel.z = m.vel.z * 1.25 38 | end 39 | end 40 | 41 | if m.action == ACT_SLIDE_KICK or m.action == ACT_SLIDE_KICK_SLIDE then 42 | set_mario_action(m, ACT_ROLL, 0) 43 | mario_set_forward_vel(m, 80) 44 | end 45 | 46 | if m.action == ACT_WALL_KICK_AIR then m.peakHeight = m.pos.y end 47 | 48 | if (m.action & ACT_FLAG_AIR) ~= 0 then 49 | m.vel.y = m.vel.y - 0.4 50 | elseif m.action == ACT_WALKING and m.forwardVel > 0 then 51 | m.faceAngle.y = m.intendedYaw 52 | end 53 | end 54 | 55 | hook_mario_action(ACT_ROLL, act_roll, INTERACT_DAMAGE) -------------------------------------------------------------------------------- /mods/weather-cycle-dx/a-constants.lua: -------------------------------------------------------------------------------- 1 | --- Checks if DNC is enabled and the version is high enough 2 | function check_dnc_compatible() 3 | return _G.dayNightCycleApi ~= nil and _G.dayNightCycleApi.version ~= nil and _G.dayNightCycleApi.version >= 230 4 | end 5 | 6 | if not check_dnc_compatible() then 7 | local first = false 8 | hook_event(HOOK_ON_LEVEL_INIT, function() 9 | if not first then 10 | first = true 11 | play_sound(SOUND_MENU_CAMERA_BUZZ, gGlobalSoundSource) 12 | djui_chat_message_create("\\#ffa0a0\\Weather Cycle DX requires Day Night Cycle v2.3 or higher to be enabled. Please rehost with it enabled.") 13 | end 14 | end) 15 | return 16 | end 17 | 18 | WC_VERSION_MAJOR = 1 19 | WC_VERSION_MINOR = 1 20 | WC_VERSION_PATCH = 4 21 | WC_VERSION = math.tointeger(string.format("%d%d%d", WC_VERSION_MAJOR, WC_VERSION_MINOR, WC_VERSION_PATCH)) 22 | 23 | -- skybox constants 24 | E_MODEL_WC_SKYBOX_CLOUDY = smlua_model_util_get_id("wc_skybox_cloudy_geo") 25 | E_MODEL_WC_SKYBOX_STORM = smlua_model_util_get_id("wc_skybox_storm_geo") 26 | E_MODEL_WC_RAIN_DROPLET = smlua_model_util_get_id("wc_rain_droplet_geo") 27 | E_MODEL_WC_LIGHTNING = smlua_model_util_get_id("wc_lightning_geo") 28 | E_MODEL_WC_AURORA = smlua_model_util_get_id("wc_aurora_geo") 29 | 30 | SKYBOX_SCALE = _G.dayNightCycleApi.constants.SKYBOX_SCALE - 100 31 | 32 | -- time constants 33 | SECOND = _G.dayNightCycleApi.constants.SECOND 34 | MINUTE = _G.dayNightCycleApi.constants.MINUTE 35 | 36 | HOUR_SUNRISE_START = _G.dayNightCycleApi.constants.HOUR_SUNRISE_START 37 | HOUR_SUNRISE_END = _G.dayNightCycleApi.constants.HOUR_SUNRISE_END 38 | HOUR_SUNRISE_DURATION = _G.dayNightCycleApi.constants.HOUR_SUNRISE_DURATION 39 | 40 | HOUR_SUNSET_END = _G.dayNightCycleApi.constants.HOUR_SUNSET_END 41 | HOUR_SUNSET_DURATION = _G.dayNightCycleApi.constants.HOUR_SUNSET_DURATION 42 | 43 | HOUR_NIGHT_START = _G.dayNightCycleApi.constants.HOUR_NIGHT_START 44 | 45 | WEATHER_TRANSITION_TIME = SECOND * 10 46 | WEATHER_MIN_DURATION = MINUTE * 3 47 | WEATHER_MAX_DURATION = MINUTE * 10 48 | 49 | -- lighting direction constants 50 | DIR_BRIGHT = _G.dayNightCycleApi.constants.DIR_BRIGHT 51 | 52 | -- colors 53 | COLOR_WHITE = { r = 255, g = 255, b = 255 } 54 | COLOR_AURORA = { r = 100, g = 150, b = 100 } -------------------------------------------------------------------------------- /mods/archived/lgbt-goombas/trans-moveset.lua: -------------------------------------------------------------------------------- 1 | --- @param m MarioState 2 | function act_wall_climb(m) 3 | if (m.input & INPUT_Z_PRESSED) ~= 0 then set_mario_action(m, ACT_LEDGE_CLIMB_DOWN, 0) end 4 | 5 | set_mario_animation(m, MARIO_ANIM_SLOW_LONGJUMP) 6 | if is_anim_past_end(m) ~= 0 then 7 | m.marioObj.header.gfx.animInfo.animFrame = 0 8 | play_sound(SOUND_ACTION_HANGING_STEP, m.marioObj.header.gfx.cameraToObject) 9 | end 10 | 11 | m.vel.y = m.controller.stickY * 0.3 12 | 13 | perform_air_step(m, AIR_STEP_CHECK_LEDGE_GRAB) 14 | end 15 | 16 | ACT_WALL_CLIMB = allocate_mario_action(ACT_GROUP_AIRBORNE | ACT_FLAG_AIR | ACT_FLAG_MOVING) 17 | 18 | --- @param m MarioState 19 | function before_trans_phys_step(m) 20 | m.peakHeight = m.pos.y 21 | 22 | if m.action == ACT_JUMP or m.action == ACT_WALL_KICK_AIR then 23 | if m.action == ACT_WALL_KICK_AIR and m.prevAction == ACT_DIVE and m.actionTimer < 7 then 24 | m.vel.x = m.vel.x * 2.6 25 | m.vel.z = m.vel.z * 2.6 26 | end 27 | 28 | m.actionTimer = m.actionTimer + 1 29 | 30 | if jumpCount > 0 and m.actionTimer > 10 and (m.input & INPUT_A_PRESSED) ~= 0 then 31 | set_mario_action(m, ACT_DOUBLE_JUMP, 0) 32 | m.vel.y = m.vel.y + 10 33 | m.peakHeight = m.pos.y 34 | jumpCount = jumpCount - 1 35 | end 36 | elseif m.action == ACT_DIVE and m.prevAction ~= ACT_WALL_KICK_AIR then 37 | play_sound(SOUND_ACTION_FLYING_FAST, m.marioObj.header.gfx.cameraToObject) 38 | set_mario_action(m, ACT_WALL_KICK_AIR, 0) 39 | end 40 | 41 | 42 | local wall = collision_find_surface_on_ray(m.pos.x, m.pos.y + 60, m.pos.z, sins(m.faceAngle.y) * 60, 0, coss(m.faceAngle.y) * 60) 43 | if wall.surface ~= nil and (m.action & ACT_FLAG_AIR) ~= 0 and ((m.controller.buttonDown & X_BUTTON) ~= 0 or (m.controller.buttonDown & Y_BUTTON) ~= 0) then 44 | set_mario_action(m, ACT_WALL_CLIMB, 0) 45 | m.faceAngle.y = atan2s(wall.hitPos.z - m.pos.z, wall.hitPos.x - m.pos.x) 46 | elseif m.action == ACT_WALL_CLIMB then 47 | set_mario_action(m, ACT_FREEFALL, 0) 48 | m.vel.y = 35 49 | end 50 | 51 | if (m.input & INPUT_OFF_FLOOR) == 0 then jumpCount = 1 end 52 | 53 | m.vel.x = m.vel.x * 1.2 54 | m.vel.z = m.vel.z * 1.2 55 | m.slideVelX = m.slideVelX * 1.02 56 | m.slideVelZ = m.slideVelZ * 1.02 57 | end 58 | 59 | hook_mario_action(ACT_WALL_CLIMB, act_wall_climb, INTERACT_PLAYER) -------------------------------------------------------------------------------- /mods/day-night-cycle/skybox.lua: -------------------------------------------------------------------------------- 1 | -- localize functions to improve performance 2 | local set_override_far,obj_mark_for_deletion,vec3f_to_object_pos,get_skybox = set_override_far,obj_mark_for_deletion,vec3f_to_object_pos,get_skybox 3 | 4 | --- @param o Object 5 | function bhv_dnc_skybox_init(o) 6 | o.header.gfx.skipInViewCheck = true 7 | set_override_far(200000) 8 | end 9 | 10 | --- @param o Object 11 | function bhv_dnc_skybox_loop(o) 12 | if not is_dnc_enabled() then 13 | obj_mark_for_deletion(o) 14 | return 15 | end 16 | 17 | vec3f_to_object_pos(o, gLakituState.pos) 18 | 19 | local skybox = get_skybox() 20 | 21 | -- do not rotate BITDW skybox 22 | if skybox == BACKGROUND_GREEN_SKY then return end 23 | 24 | local minutes = get_time_minutes() 25 | 26 | o.oFaceAngleYaw = (minutes / 24) * 0x10000 27 | 28 | if o.oBehParams2ndByte == SKYBOX_DAY then 29 | o.oOpacity = 255 30 | elseif o.oBehParams2ndByte == SKYBOX_SUNSET then 31 | if minutes >= HOUR_SUNRISE_START and minutes <= HOUR_SUNRISE_END then 32 | o.oOpacity = ((minutes - HOUR_SUNRISE_START) / HOUR_SUNRISE_DURATION) * 255 33 | elseif minutes > HOUR_SUNRISE_END and minutes <= HOUR_DAY_START then 34 | o.oOpacity = 255 - ((minutes - HOUR_SUNRISE_END) / HOUR_SUNRISE_DURATION) * 255 35 | elseif minutes >= HOUR_SUNSET_START and minutes <= HOUR_SUNSET_END then 36 | o.oOpacity = ((minutes - HOUR_SUNSET_START) / HOUR_SUNSET_DURATION) * 255 37 | elseif minutes > HOUR_SUNSET_END and minutes <= HOUR_NIGHT_START then 38 | o.oOpacity = 255 39 | else 40 | o.oOpacity = 0 41 | end 42 | 43 | if minutes < 12 then 44 | o.oAnimState = gSunriseSkyboxes[skybox] or BACKGROUND_OCEAN_SKY_SUNRISE 45 | else 46 | o.oAnimState = gSunsetSkyboxes[skybox] or BACKGROUND_OCEAN_SKY_SUNSET 47 | end 48 | 49 | o.oFaceAngleYaw = o.oFaceAngleYaw - if_then_else(minutes < 12, 0x3000, 0x6000) 50 | elseif o.oBehParams2ndByte == SKYBOX_NIGHT then 51 | if minutes >= HOUR_SUNRISE_START and minutes <= HOUR_SUNRISE_END then 52 | o.oOpacity = 255 - ((minutes - HOUR_SUNRISE_START) / HOUR_SUNRISE_DURATION) * 255 53 | elseif minutes >= HOUR_SUNSET_END and minutes <= HOUR_NIGHT_START then 54 | o.oOpacity = ((minutes - HOUR_SUNSET_END) / HOUR_SUNSET_DURATION) * 255 55 | elseif minutes > HOUR_NIGHT_START or minutes < HOUR_SUNRISE_START then 56 | o.oOpacity = 255 57 | else 58 | o.oOpacity = 0 59 | end 60 | end 61 | end -------------------------------------------------------------------------------- /mods/archived/l4d2-hud/first-aid.lua: -------------------------------------------------------------------------------- 1 | HEALING_TIME = 150 2 | 3 | healedSounds = { 4 | CHAR_SOUND_HAHA, 5 | CHAR_SOUND_LETS_A_GO, 6 | CHAR_SOUND_OKEY_DOKEY 7 | } 8 | 9 | --- @param m MarioState 10 | function act_healing(m) 11 | if (m.controller.buttonDown & U_JPAD) == 0 then set_mario_action(m, ACT_IDLE, 0) end 12 | 13 | local anims = { 14 | MARIO_ANIM_START_REACH_POCKET, 15 | MARIO_ANIM_REACH_POCKET, 16 | MARIO_ANIM_STOP_REACH_POCKET, 17 | MARIO_ANIM_MISSING_CAP 18 | } 19 | 20 | if is_anim_at_end(m) ~= 0 and anims[m.actionState + 2] ~= nil then m.actionState = m.actionState + 1 end 21 | set_mario_animation(m, anims[m.actionState + 1]) 22 | 23 | if m.actionTimer < HEALING_TIME then 24 | m.actionTimer = m.actionTimer + 1 25 | else 26 | gPlayerSyncTable[m.playerIndex].firstAid = false 27 | m.health = m.health + 0x680 28 | play_character_sound(m, healedSounds[math.random(1, 3)]) 29 | m.invincTimer = 30 30 | set_mario_action(m, ACT_IDLE, 0) 31 | end 32 | 33 | if not gNetworkPlayers[m.playerIndex].name:lower():find("keeb") then m.marioObj.header.gfx.pos.y = m.pos.y end 34 | end 35 | ACT_HEALING = allocate_mario_action(ACT_GROUP_CUTSCENE | ACT_FLAG_IDLE | ACT_FLAG_STATIONARY) 36 | 37 | --- @param m MarioState 38 | function mario_update(m) 39 | if m.playerIndex ~= 0 then return end 40 | 41 | if not gGlobalSyncTable.sm64Health and (m.action & ACT_FLAG_IDLE) ~= 0 and (m.controller.buttonPressed & U_JPAD) ~= 0 and gPlayerSyncTable[0].firstAid and m.health <= 0x680 then 42 | set_mario_action(m, ACT_HEALING, 0) 43 | end 44 | end 45 | 46 | --- @param m MarioState 47 | function on_player_connected(m) 48 | gPlayerSyncTable[m.playerIndex].firstAid = false 49 | end 50 | 51 | --- @param o Object 52 | function on_object_unload(o) 53 | -- thanks PeachyPeach 54 | local m = gMarioStates[0] 55 | if (o.header.gfx.node.flags & GRAPH_RENDER_INVISIBLE) == 0 and ( 56 | obj_has_behavior_id(o, id_bhv1Up) ~= 0 or 57 | obj_has_behavior_id(o, id_bhv1upJumpOnApproach) ~= 0 or 58 | obj_has_behavior_id(o, id_bhv1upRunningAway) ~= 0 or 59 | obj_has_behavior_id(o, id_bhv1upSliding) ~= 0 or 60 | obj_has_behavior_id(o, id_bhv1upWalking) ~= 0 or 61 | obj_has_behavior_id(o, id_bhvHidden1up) ~= 0 or 62 | obj_has_behavior_id(o, id_bhvHidden1upInPole) ~= 0) and 63 | obj_check_hitbox_overlap(o, m.marioObj) ~= 0 then 64 | gMarioStates[0].numLives = gMarioStates[0].numLives - 1 65 | if not gPlayerSyncTable[0].firstAid then 66 | gPlayerSyncTable[0].firstAid = true 67 | end 68 | end 69 | end 70 | 71 | hook_event(HOOK_MARIO_UPDATE, mario_update) 72 | hook_event(HOOK_ON_PLAYER_CONNECTED, on_player_connected) 73 | hook_event(HOOK_ON_OBJECT_UNLOAD, on_object_unload) 74 | 75 | hook_mario_action(ACT_HEALING, act_healing, INTERACT_PLAYER) -------------------------------------------------------------------------------- /mods/archived/lgbt-goombas/asexual-moveset.lua: -------------------------------------------------------------------------------- 1 | MAX_POWER_JUMP_HEIGHT = 150 2 | 3 | --- @param m MarioState 4 | function act_custom_triple_jump(m) 5 | if (m.input & INPUT_B_PRESSED) ~= 0 then 6 | return set_mario_action(m, ACT_DIVE, 0) 7 | end 8 | 9 | if (m.input & INPUT_Z_PRESSED) ~= 0 then 10 | return set_mario_action(m, ACT_GROUND_POUND, 0) 11 | end 12 | 13 | play_mario_sound(m, SOUND_ACTION_TERRAIN_JUMP, CHAR_SOUND_YAHOO) 14 | 15 | common_air_action_step(m, ACT_TRIPLE_JUMP_LAND, MARIO_ANIM_FORWARD_SPINNING, 0) 16 | 17 | if m.actionState == 0 or m.vel.y > 0 then 18 | if set_mario_animation(m, MARIO_ANIM_FORWARD_SPINNING) == 0 then 19 | play_sound(SOUND_ACTION_SPIN, m.marioObj.header.gfx.cameraToObject) 20 | end 21 | end 22 | 23 | set_mario_particle_flags(m, PARTICLE_SPARKLES, 0) 24 | end 25 | 26 | --- @param m MarioState 27 | function act_power_jump(m) 28 | set_mario_animation(m, MARIO_ANIM_CROUCHING) 29 | m.particleFlags = m.particleFlags | PARTICLE_SPARKLES 30 | 31 | if m.actionTimer % 35 == 0 then 32 | play_sound(SOUND_GENERAL_COIN_SPURT, m.marioObj.header.gfx.cameraToObject) 33 | end 34 | m.actionTimer = m.actionTimer + 1 35 | 36 | if (m.controller.buttonDown & Z_TRIG) ~= 0 and ((m.controller.buttonDown & Y_BUTTON) ~= 0 or (m.controller.buttonDown & X_BUTTON) ~= 0) then 37 | m.vel.y = m.vel.y + 1 38 | if m.vel.y == MAX_POWER_JUMP_HEIGHT - 1 then spawn_orange_number(MAX_POWER_JUMP_HEIGHT, 0, 0, 0) end 39 | 40 | if m.vel.y > MAX_POWER_JUMP_HEIGHT then m.vel.y = MAX_POWER_JUMP_HEIGHT end 41 | if obj_get_first_with_behavior_id(id_bhvOrangeNumber) == nil then 42 | if m.vel.y < MAX_POWER_JUMP_HEIGHT then 43 | spawn_orange_number(math.floor(m.vel.y), 0, 0, 0) 44 | end 45 | end 46 | else 47 | if m.vel.y > 10 then 48 | m.pos.y = m.pos.y + 10 49 | return set_mario_action(m, ACT_CUSTOM_TRIPLE_JUMP, 0) 50 | else 51 | m.vel.y = 0 52 | return set_mario_action(m, ACT_STOP_CROUCHING, 0) 53 | end 54 | end 55 | stationary_ground_step(m) 56 | end 57 | 58 | ACT_CUSTOM_TRIPLE_JUMP = allocate_mario_action(ACT_GROUP_AIRBORNE | ACT_FLAG_AIR | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION) 59 | ACT_POWER_JUMP = allocate_mario_action(ACT_GROUP_STATIONARY | ACT_FLAG_STATIONARY | ACT_FLAG_SHORT_HITBOX) 60 | 61 | --- @param m MarioState 62 | function before_asexual_phys_step(m) 63 | if (m.action & ACT_FLAG_AIR) ~= 0 then m.vel.y = m.vel.y + 0.3 end 64 | if m.action == ACT_GROUND_POUND then m.vel.y = -120 end 65 | m.peakHeight = m.pos.y 66 | 67 | if m.action == ACT_TWIRLING and (m.input & INPUT_Z_DOWN) ~= 0 then m.vel.y = m.vel.y - 50 end 68 | end 69 | 70 | hook_mario_action(ACT_CUSTOM_TRIPLE_JUMP, act_custom_triple_jump, INTERACT_PLAYER) 71 | hook_mario_action(ACT_POWER_JUMP, act_power_jump, INTERACT_PLAYER) -------------------------------------------------------------------------------- /utils/blender_bake_vertex_colors.py: -------------------------------------------------------------------------------- 1 | import bpy 2 | 3 | # filmic is mid 4 | bpy.context.scene.view_settings.view_transform = "Standard" 5 | 6 | def bake_all_meshes(self, context): 7 | # save choice of renderer 8 | renderer = bpy.context.scene.render.engine 9 | 10 | # setup settings for baking 11 | bpy.context.scene.render.engine = "CYCLES" 12 | bpy.context.scene.cycles.device = "GPU" 13 | bpy.context.scene.cycles.bake_type = "DIFFUSE" 14 | bpy.context.scene.render.bake.target = "VERTEX_COLORS" 15 | 16 | # create placeholder material for the actual lighting 17 | placeholder = bpy.data.materials.get("Placeholder") 18 | if placeholder is None: 19 | placeholder = bpy.data.materials.new(name="Placeholder") 20 | 21 | # setup backup material array 22 | materials = [] 23 | i = 0 24 | 25 | # select every mesh and prepare for baking 26 | for obj in bpy.context.selected_objects: 27 | if obj.type != "MESH" or obj.hide_render: 28 | self.report({ "WARNING" }, "Please make sure you have only meshes selected and they do not have hide render on.") 29 | return 30 | bpy.ops.object.editmode_toggle() 31 | bpy.ops.mesh.select_all(action="SELECT") 32 | bpy.ops.paint.vertex_paint_toggle() 33 | bpy.data.brushes["Draw"].color = (1, 1, 1) 34 | bpy.data.brushes["Draw"].secondary_color = (1, 1, 1) 35 | bpy.ops.paint.vertex_color_set() 36 | bpy.ops.paint.vertex_paint_toggle() 37 | 38 | # override materials with special one to ensure the lighting bakes properly 39 | for slot in obj.material_slots: 40 | if slot.material is not None: 41 | materials.append(slot.material) 42 | slot.material = placeholder 43 | bpy.context.object.active_material.use_nodes = True 44 | 45 | # bake into vertex colors 46 | bpy.ops.object.bake() 47 | 48 | # reset materials 49 | for obj in bpy.context.selected_objects: 50 | for slot in obj.material_slots: 51 | if slot.material is not None: 52 | slot.material = materials[i] 53 | i += 1 54 | 55 | #reset render engine 56 | bpy.context.scene.render.engine = renderer 57 | 58 | class SM64_BAKE_PT_BakePanel(bpy.types.Panel): 59 | bl_label = "SM64 Bake" 60 | bl_idname = "SM64_BAKE_PT_BakePanel" 61 | bl_space_type = "VIEW_3D" 62 | bl_region_type = "UI" 63 | bl_category = "SM64" 64 | 65 | def draw(self, context): 66 | self.layout.operator("wm.bake_button") 67 | 68 | class SM64_BAKE_OT_BakePanelBakeOperator(bpy.types.Operator): 69 | bl_label = "Bake Lights Into Vertex Colors" 70 | bl_idname = "wm.bake_button" 71 | 72 | def execute(self, context): 73 | bake_all_meshes(self, context) 74 | return { "FINISHED" } 75 | 76 | def register(): 77 | bpy.utils.register_class(SM64_BAKE_PT_BakePanel) 78 | bpy.utils.register_class(SM64_BAKE_OT_BakePanelBakeOperator) 79 | 80 | def unregister(): 81 | bpy.utils.unregister_class(SM64_BAKE_PT_BakePanel) 82 | bpy.utils.unregister_class(SM64_BAKE_OT_BakePanelBakeOperator) 83 | 84 | if __name__ == "__main__": 85 | register() -------------------------------------------------------------------------------- /mods/gun-mod/b-gun.lua: -------------------------------------------------------------------------------- 1 | --- @param weapon Weapon 2 | --- @return nil 3 | function common_shoot(weapon) 4 | --- @type MarioState 5 | local m = gMarioStates[0] 6 | 7 | if not weapon.reqCheck(m) then return end 8 | 9 | if weapon.ammo <= 0 and weapon.maxAmmo > 0 then 10 | audio_sample_play(SOUND_CUSTOM_DRY, gMarioStates[0].pos, 1) 11 | return 12 | end 13 | 14 | local enabled = get_first_person_enabled() 15 | local x = if_then_else(enabled, gLakituState.pos.x, m.pos.x) 16 | local y = if_then_else(enabled, gLakituState.pos.y, m.pos.y + FIRST_PERSON_MARIO_HEAD_POS_SHORT) 17 | local z = if_then_else(enabled, gLakituState.pos.z, m.pos.z) 18 | 19 | spawn_bullets_player(x, y, z, weapon.bulletCount) 20 | if #weapon.primarySounds > 0 then 21 | sync_audio_sample_play(weapon.primarySounds[math.random(#weapon.primarySounds)], gMarioStates[0].pos, 1) 22 | end 23 | 24 | if weapon.maxAmmo > 0 then 25 | weapon.ammo = weapon.ammo - 1 26 | if weapon.ammo == 0 then common_reload(weapon) end 27 | end 28 | 29 | useDualWieldWeapon = not useDualWieldWeapon 30 | end 31 | 32 | --- @param weapon Weapon 33 | --- @return nil 34 | function common_reload(weapon) 35 | --- @type MarioState 36 | local m = gMarioStates[0] 37 | if weapon.reloadTimer > 0 or not weapon.reqCheck(m) then return end 38 | 39 | local weapon2 = if_then_else(useDualWieldWeapon, cur_weapon(), cur_dual_wield_weapon()) 40 | if weapon.ammo >= weapon.maxAmmo then 41 | weapon.cooldownTimer = 0 42 | if weapon2 ~= nil then 43 | if weapon2.ammo >= weapon2.maxAmmo then 44 | weapon2.cooldownTimer = 0 45 | else 46 | if #weapon.secondarySounds > 0 then 47 | sync_audio_sample_play(weapon.secondarySounds[math.random(#weapon.secondarySounds)], m.pos, 1) 48 | end 49 | weapon2.ammo = 0 50 | weapon2.reloadTimer = weapon2.reloadTime 51 | end 52 | end 53 | return 54 | end 55 | 56 | if weapon2 ~= nil then 57 | if weapon2.ammo >= weapon2.maxAmmo then 58 | weapon2.cooldownTimer = 0 59 | else 60 | if #weapon.secondarySounds > 0 then 61 | sync_audio_sample_play(weapon.secondarySounds[math.random(#weapon.secondarySounds)], m.pos, 1) 62 | end 63 | weapon2.ammo = 0 64 | weapon2.reloadTimer = weapon2.reloadTime 65 | end 66 | end 67 | 68 | if #weapon.secondarySounds > 0 then 69 | sync_audio_sample_play(weapon.secondarySounds[math.random(#weapon.secondarySounds)], m.pos, 1) 70 | end 71 | weapon.ammo = 0 72 | weapon.reloadTimer = weapon.reloadTime 73 | end 74 | 75 | --- @param m MarioState 76 | function check_common_gun_requirements(m) 77 | return m.health > 0xFF and 78 | m.action ~= ACT_STAR_DANCE_EXIT and 79 | m.action ~= ACT_STAR_DANCE_NO_EXIT and 80 | m.action ~= ACT_STAR_DANCE_WATER and 81 | m.action ~= ACT_LEDGE_GRAB and 82 | m.action ~= ACT_LEDGE_CLIMB_FAST and 83 | m.action ~= ACT_LEDGE_CLIMB_SLOW_1 and 84 | m.action ~= ACT_LEDGE_CLIMB_SLOW_2 and 85 | (m.action & ACT_GROUP_MASK) ~= ACT_GROUP_SUBMERGED and 86 | m.action ~= ACT_DISAPPEARED 87 | end -------------------------------------------------------------------------------- /mods/archived/completion-percentage.lua: -------------------------------------------------------------------------------- 1 | -- name: Completion Percentage 2 | -- description: Completion Percentage\nBy \\#ec7731\\Agent X\\#dcdcdc\\\n\nThis mod adds a completion percentage to sm64ex-coop in the pause menu, when you're not in a course and pause the game there will be a percentage near the middle of the screen. 3 | 4 | NUM_STARS = 120 5 | -- stars, ddd moved back, moat drained, 3 caps, 9 unlockable doors 6 | NUM_OBJECTIVES = NUM_STARS + 1 + 1 + 3 + 9 7 | 8 | function increment_completion(completion) 9 | return completion + (1 - (NUM_STARS / NUM_OBJECTIVES)) / (NUM_OBJECTIVES - NUM_STARS) 10 | end 11 | 12 | function djui_hud_print_text_centered(message, x, y, scale) 13 | local measure = djui_hud_measure_text(message) 14 | djui_hud_print_text(message, x - (measure * 0.5) * scale, y, scale) 15 | end 16 | 17 | function on_hud_render() 18 | if not is_game_paused() or gNetworkPlayers[0].currCourseNum ~= COURSE_NONE then return end 19 | 20 | djui_hud_set_resolution(RESOLUTION_N64) 21 | djui_hud_set_font(FONT_NORMAL) 22 | 23 | local width = djui_hud_get_screen_width() 24 | local height = djui_hud_get_screen_height() 25 | 26 | local completion = gMarioStates[0].numStars / NUM_OBJECTIVES 27 | local flags = save_file_get_flags() 28 | if (flags & SAVE_FLAG_DDD_MOVED_BACK) ~= 0 then 29 | completion = increment_completion(completion) 30 | end 31 | if (flags & SAVE_FLAG_HAVE_WING_CAP) ~= 0 then 32 | completion = increment_completion(completion) 33 | end 34 | if (flags & SAVE_FLAG_HAVE_METAL_CAP) ~= 0 then 35 | completion = increment_completion(completion) 36 | end 37 | if (flags & SAVE_FLAG_HAVE_VANISH_CAP) ~= 0 then 38 | completion = increment_completion(completion) 39 | end 40 | if (flags & SAVE_FLAG_MOAT_DRAINED) ~= 0 then 41 | completion = increment_completion(completion) 42 | end 43 | if (flags & SAVE_FLAG_UNLOCKED_PSS_DOOR) ~= 0 then 44 | completion = increment_completion(completion) 45 | end 46 | if (flags & SAVE_FLAG_UNLOCKED_WF_DOOR) ~= 0 then 47 | completion = increment_completion(completion) 48 | end 49 | if (flags & SAVE_FLAG_UNLOCKED_CCM_DOOR) ~= 0 then 50 | completion = increment_completion(completion) 51 | end 52 | if (flags & SAVE_FLAG_UNLOCKED_JRB_DOOR) ~= 0 then 53 | completion = increment_completion(completion) 54 | end 55 | if (flags & SAVE_FLAG_UNLOCKED_BITDW_DOOR) ~= 0 then 56 | completion = increment_completion(completion) 57 | end 58 | if (flags & SAVE_FLAG_UNLOCKED_BASEMENT_DOOR) ~= 0 then 59 | completion = increment_completion(completion) 60 | end 61 | if (flags & SAVE_FLAG_UNLOCKED_BITFS_DOOR) ~= 0 then 62 | completion = increment_completion(completion) 63 | end 64 | if (flags & SAVE_FLAG_UNLOCKED_UPSTAIRS_DOOR) ~= 0 then 65 | completion = increment_completion(completion) 66 | end 67 | if (flags & SAVE_FLAG_UNLOCKED_50_STAR_DOOR) ~= 0 then 68 | completion = increment_completion(completion) 69 | end 70 | 71 | djui_hud_set_color(0, 0, 0, 150) 72 | djui_hud_print_text_centered(string.format("%.2f", completion * 100) .. "%", width * 0.5, height * 0.5 - 19, 0.5) 73 | djui_hud_set_color(255, 255, 255, 255) 74 | djui_hud_print_text_centered(string.format("%.2f", completion * 100) .. "%", width * 0.5, height * 0.5 - 20, 0.5) 75 | end 76 | 77 | hook_event(HOOK_ON_HUD_RENDER, on_hud_render) -------------------------------------------------------------------------------- /conventions.md: -------------------------------------------------------------------------------- 1 | # Agent X's Mod Writing Conventions (WIP) 2 | 3 | ## Naming Conventions: 4 | 5 | ### Mod Codename: 6 | Come up with an acronym for your mod name, this will be its codename. 7 | 8 | Examples: 9 | | Name | Acronym | 10 | | ---- | ------- | 11 | | Underworld | UW | 12 | | Day Night Cycle | DNC | 13 | | Weather Cycle | WC | 14 | | Gun Mod | GM | 15 | 16 | ### Fundamental Code: 17 | * **Functions:** snake_case (`function_name()`) 18 | * **Variables:** camelCase (`variableName`) 19 | * **Local Tables:** camelCase (`sLocalTable`) 20 | * **Global Tables:** camelCase (`gGlobalTable`) 21 | 22 | ### Smlua Types 23 | * **ModelExtendedId:** `E_MODEL_*` 24 | * **TextureInfo:** `TEX_*` 25 | * **BassAudio:** `SAMPLE_*` or `STREAM_*` depending on whether or not you're loading a stream. 26 | 27 | ### Files: 28 | Prefix actors, behaviors and textures with your mod codename. This is so other mods with files of the same name don't get the game confused, it's also just good practice. Sounds do not need to adhere to this naming convention because other mods can't access them anyway. 29 | 30 | Examples: 31 | * **Actor Example:** `uw_skybox_geo.bin` 32 | * **Behavior Example:** `bhvUWSkybox.bhv` 33 | * **Texture Example:** `uw_intro_screen.tex` 34 | 35 | ## Practices 36 | 37 | Make everything local as much as reasonably possible. local variables, local tables, local functions. Lua can reference these different types of data quicker than it would globally. 38 | 39 | There is also I process I go through to optimize my mods even further this way. I have written a script that references a list of functions in the Smlua API and generates an `optimizations.lua` file that contains a line that localizes all of the functions for each file in the mod. 40 | ```sh 41 | python utils/lua_optimizer.py mods/mod-name 42 | ``` 43 | 44 | Once you obtain this output file, you can paste the optimization lines into each one of the mod's files. 45 | 46 | Another practice I have is that when I'm working with HUD rendering, any rendering property that's used or set (resolution, font, color, ect) is declared in the function. If I set the filter and font for example, I'm going to run this: 47 | ```lua 48 | djui_hud_set_filter(FILTER_NEAREST) 49 | djui_hud_set_font(FONT_HUD) 50 | ``` 51 | 52 | Before, you used to not be able to rely on default DJUI HUD values since they weren't reset between mods. I still think it's a good practice to explicitly set DJUI hud values so you know exactly how it's going to render and also to future proof it in case the defaults were to change for whatever reason in the future. 53 | 54 | ## Structure 55 | 56 | I typically structure my mods with a constants file and a utility functions file. These are executed first because they are prefixed with `a-`. 57 | 58 | * `a-constants.lua`: This file contains level IDs, model IDs, textures, sounds, actions and mod related constants. 59 | 60 | * `a-utils.lua`: This file contains all utility functions used by the mod. 61 | 62 | * `main.lua`: This file is the entry point of the mod, it contains the name, description, incompatibility tags, and pausable tag if necessary. I usually put vital hooks, variables and functions in this file as well as constants if the mod is small enough to not warrant making a whole file for them. 63 | 64 | * Other Lua Files: These files contain different components or systems that are in the mod. For example, Underworld has files such as `cutscene.lua`, `dialog.lua`, `npc.lua`. 65 | 66 | ## Mod Storage 67 | 68 | In Mod Storage keys, I use snake_case for naming them. -------------------------------------------------------------------------------- /mods/archived/flying-gorilla/obstacles.lua: -------------------------------------------------------------------------------- 1 | E_MODEL_CUBE = smlua_model_util_get_id("cube_geo") 2 | COL_CUBE = smlua_collision_util_get("cube_collision") 3 | 4 | E_MODEL_WATER = smlua_model_util_get_id("water_geo") 5 | COL_WATER = smlua_collision_util_get("water_collision") 6 | 7 | E_MODEL_CREATURE = smlua_model_util_get_id("creature_geo") 8 | COL_CREATURE = smlua_collision_util_get("creature_collision") 9 | 10 | --- @param o Object 11 | function bhv_solid_object_init(o) 12 | o.oFlags = OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE 13 | o.oCollisionDistance = 1000 14 | end 15 | 16 | --- @param o Object 17 | function bhv_solid_object_loop(o) 18 | if gMarioStates[0].actionTimer ~= 0 then return end 19 | 20 | o.oPosZ = o.oPosZ - OFFSET_SPEED 21 | 22 | load_object_collision_model() 23 | end 24 | 25 | id_bhvSolidObject = hook_behavior(nil, OBJ_LIST_SURFACE, true, bhv_solid_object_init, bhv_solid_object_loop) 26 | 27 | --- @param o Object 28 | function bhv_water_init(o) 29 | o.oFlags = OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE 30 | o.oCollisionDistance = 1000 31 | o.collisionData = COL_WATER 32 | o.oHomeY = o.oPosY 33 | o.oIntangibleTimer = 30 34 | end 35 | 36 | --- @param o Object 37 | function bhv_water_loop(o) 38 | if gMarioStates[0].actionTimer ~= 0 or o.oIntangibleTimer ~= 0 then return end 39 | 40 | o.oPosY = o.oHomeY + math.sin(o.oTimer * 0.1) * 500 41 | o.oPosZ = o.oPosZ - OFFSET_SPEED 42 | 43 | load_object_collision_model() 44 | end 45 | 46 | id_bhvWater = hook_behavior(nil, OBJ_LIST_SURFACE, true, bhv_water_init, bhv_water_loop) 47 | 48 | --- @param o Object 49 | function bhv_enemy_init(o) 50 | o.oFlags = OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE 51 | o.oCollisionDistance = 1000 52 | o.collisionData = COL_CREATURE 53 | end 54 | 55 | --- @param o Object 56 | function bhv_enemy_loop(o) 57 | if gMarioStates[0].actionTimer ~= 0 then return end 58 | 59 | o.oPosX = math.sin(o.oTimer * 0.1) * 300 60 | o.oPosZ = o.oPosZ - OFFSET_SPEED 61 | 62 | load_object_collision_model() 63 | end 64 | 65 | id_bhvEnemy = hook_behavior(nil, OBJ_LIST_SURFACE, true, bhv_enemy_init, bhv_enemy_loop) 66 | 67 | function spawn_obstacles() 68 | for i = 1, 4 do 69 | spawn_non_sync_object( 70 | id_bhvSolidObject, 71 | E_MODEL_CUBE, 72 | 300 * math.random(-1, 1), 0, (6000 * pieceCounter) - (gameTimer * OFFSET_SPEED) + (1000 * i), 73 | --- @param o Object 74 | function(o) 75 | o.collisionData = COL_CUBE 76 | o.oFaceAngleYaw = 0 77 | o.oFaceAnglePitch = 0 78 | o.oFaceAngleRoll = 0 79 | end 80 | ) 81 | 82 | if math.random(0, 1) == 0 then 83 | spawn_non_sync_object( 84 | id_bhvWater, 85 | E_MODEL_WATER, 86 | 0, -500, (6000 * pieceCounter) - (gameTimer * OFFSET_SPEED) + 7500, 87 | --- @param o Object 88 | function(o) 89 | o.oFaceAngleYaw = 0 90 | o.oFaceAnglePitch = 0 91 | o.oFaceAngleRoll = 0 92 | end 93 | ) 94 | end 95 | end 96 | 97 | if math.random(0, 5) == 0 then 98 | spawn_non_sync_object( 99 | id_bhvEnemy, 100 | E_MODEL_CREATURE, 101 | 0, 200, (6000 * pieceCounter) - (gameTimer * OFFSET_SPEED) + 500, 102 | --- @param o Object 103 | function(o) 104 | o.oFaceAngleYaw = 0 105 | o.oFaceAnglePitch = 0 106 | o.oFaceAngleRoll = 0 107 | end 108 | ) 109 | end 110 | end -------------------------------------------------------------------------------- /utils/c_to_lua.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import re 3 | 4 | print("C To Lua Script") 5 | print("Warning: you will need to edit the output, this just automates all of the little annoying bits.") 6 | 7 | cli = True 8 | path = "" 9 | # smart arg handler 10 | if len(sys.argv) > 1: 11 | path = sys.argv[1] 12 | else: 13 | cli = False 14 | path = input("Type the path to the Lua file here: ") 15 | 16 | out = "" 17 | with open(path, "r") as f: 18 | floatPattern = re.compile(r"([-+]?(\d*\.\d+|\d+\.)([eE][-+]?\d+)?)[fF]") 19 | operatorPattern = re.compile(r"([a-zA-Z_][a-zA-Z0-9_]*)\s*\*=\s*([^;]*)") 20 | 21 | contents = f.read() 22 | 23 | # float correction 24 | contents = floatPattern.sub(r"\1", contents) 25 | 26 | # basic syntax corrections 27 | contents = contents.replace("->", ".")\ 28 | .replace("else if", "elseif")\ 29 | .replace("if (", "if ")\ 30 | .replace("switch ", "switch")\ 31 | .replace("}", "end")\ 32 | .replace("end elseif", "elseif")\ 33 | .replace("end else", "else")\ 34 | .replace("else {", "else")\ 35 | .replace("sqrt", "math.sqrt")\ 36 | .replace("&&", "and")\ 37 | .replace("||", "or")\ 38 | .replace("[0]", ".x")\ 39 | .replace("[1]", ".y")\ 40 | .replace("[2]", ".z")\ 41 | .replace(".0", "")\ 42 | .replace("FALSE", "0")\ 43 | .replace("TRUE", "1")\ 44 | .replace("!=", "~=")\ 45 | .replace("NULL", "nil")\ 46 | .replace("//", "--") 47 | 48 | # half assed switch statement corrections 49 | contents = contents.replace("case ", "[") 50 | contents = contents.replace(":", "] = function()") 51 | contents = contents.replace(" break", "end,") 52 | 53 | # line specific corrections 54 | lines = contents.split("\n") 55 | newFunction = False 56 | for line in lines: 57 | # ignore #if, #ifdef, #ifndef, #else and #endif 58 | if line.startswith("#if") or line.startswith("#else") or line.startswith("#endif"): 59 | continue 60 | 61 | # type corrections 62 | for type in [" u8", " s8", " u16", " s16", " u32", " s32", " f32"]: 63 | if type in line: 64 | cast = f"({type})" 65 | if cast in line: 66 | line = line.replace(cast, type) 67 | else: 68 | line = line.replace(type, " local") 69 | 70 | # function declaration param correction 71 | for type in ["u8", "s8", "u16", "s16", "u32", "s32", "f32", "void"]: 72 | if line.startswith(type): 73 | line = line.replace(type, "local function") 74 | line = line.replace(") {", ")") 75 | if "MarioState" in line: 76 | line = "--- @param m MarioState\n" + line 77 | line = re.sub(r"struct.*?\*", "", line) 78 | 79 | # if and switch statement corrections 80 | if "if" in line and line.endswith(") {"): 81 | line = line.replace(") {", " then") 82 | elif "switch" in line and line.endswith(") {"): 83 | line = line.replace(") {", ", {") 84 | 85 | # specific switch statement corrections, hacky 86 | if newFunction and " end" in line: 87 | line = line.replace("end", "})") 88 | newFunction = "end," in line 89 | 90 | # vec3f correction 91 | if "Vec3f" in line: 92 | line = line.replace("Vec3f", "local").replace(";", " = { x = 0, y = 0, z = 0 }") 93 | 94 | if line.endswith(";"): 95 | line = line.replace(";", "") 96 | 97 | out += line + "\n" 98 | with open(path.replace(".lua", "").replace(".c", "") + "_out.lua", "w") as f: 99 | f.write(out) 100 | 101 | if not cli: 102 | input("Done! Press any key to exit. ") -------------------------------------------------------------------------------- /mods/underworld/npc.lua: -------------------------------------------------------------------------------- 1 | define_custom_obj_fields({ 2 | oOwner = 's32', 3 | oNpcTalkingTo = 's32', 4 | oNpcId = 'u32', 5 | oDialogId = 'u32' 6 | }) 7 | 8 | NPC_INTERACT_RANGE = 400 9 | 10 | lastNpcId = 0 11 | 12 | -- localize functions to improve performance 13 | local max,obj_mark_for_deletion,find_floor_height,spawn_non_sync_object,smlua_anim_util_set_animation,dist_between_objects,network_local_index_from_global,set_mario_action,obj_get_first_with_behavior_id,obj_get_next_with_same_behavior_id = max,obj_mark_for_deletion,find_floor_height,spawn_non_sync_object,smlua_anim_util_set_animation,dist_between_objects,network_local_index_from_global,set_mario_action,obj_get_first_with_behavior_id,obj_get_next_with_same_behavior_id 14 | 15 | local function increment_npc_id() 16 | lastNpcId = lastNpcId + 1 17 | return lastNpcId 18 | end 19 | 20 | --- @param o Object 21 | local function bhv_npc_init(o) 22 | o.oFlags = OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE 23 | o.globalPlayerIndex = 0 24 | o.oNpcTalkingTo = -1 25 | o.oNpcId = increment_npc_id() 26 | local targetDialogId = max(o.oBehParams >> 24, 1) 27 | if targetDialogId == 1 then 28 | if gGlobalSyncTable.stars >= STARS then 29 | obj_mark_for_deletion(o) 30 | return 31 | elseif gGlobalSyncTable.stars > 0 then 32 | o.oBehParams = 0x02000000 33 | end 34 | end 35 | 36 | o.oPosY = find_floor_height(o.oPosX, o.oPosY + 200, o.oPosZ) 37 | o.oMoveAngleYaw = o.oFaceAngleYaw 38 | 39 | spawn_non_sync_object( 40 | id_bhvLetter, 41 | E_MODEL_LETTER, 42 | o.oPosX, o.oPosY + 250, o.oPosZ, 43 | --- @param obj Object 44 | function(obj) 45 | obj.parentObj = o 46 | obj.oAnimState = 1 47 | end 48 | ) 49 | 50 | network_init_object(o, false, { "oNpcId", "oDialogId" }) 51 | end 52 | 53 | --- @param o Object 54 | local function bhv_npc_loop(o) 55 | if betrayalCutscene >= 2 then 56 | obj_mark_for_deletion(o) 57 | return 58 | end 59 | 60 | if o.oAction == 0 then 61 | smlua_anim_util_set_animation(o, "apparition_idle") 62 | o.oGraphYOffset = 65 63 | elseif o.oAction == 1 then 64 | smlua_anim_util_set_animation(o, "apparition_raise_arm") 65 | o.oGraphYOffset = 75 66 | end 67 | 68 | if o.oNpcTalkingTo < 0 then 69 | if dist_between_objects(o, gMarioStates[0].marioObj) < NPC_INTERACT_RANGE and (gMarioStates[0].input & INPUT_B_PRESSED) ~= 0 and (gMarioStates[0].action == ACT_PUNCHING or gMarioStates[0].action == ACT_MOVE_PUNCHING) then 70 | o.oNpcTalkingTo = gNetworkPlayers[0].globalIndex 71 | o.oDialogId = max(o.oBehParams >> 24, 1) 72 | end 73 | else 74 | local m = gMarioStates[network_local_index_from_global(o.oNpcTalkingTo)] 75 | o.oFaceAngleYaw = approach_number(o.oFaceAngleYaw, atan2s(m.pos.z - o.oPosZ, m.pos.x - o.oPosX), 0x200, 0x200) 76 | 77 | if gDialogState.currentDialog == nil then 78 | set_mario_action(m, ACT_CUTSCENE, 0) 79 | start_dialog(o.oDialogId, o, true, true, 1000) 80 | -- hardcoded 81 | if o.oDialogId == 1 then 82 | o.oBehParams = 0x02000000 83 | obj_mark_for_deletion(obj_get_first_with_behavior_id(id_bhvDialogTrigger)) 84 | end 85 | end 86 | end 87 | end 88 | 89 | id_bhvNpc = hook_behavior(nil, OBJ_LIST_GENACTOR, true, bhv_npc_init, bhv_npc_loop) 90 | 91 | 92 | --- @return Object|nil 93 | function get_npc_with_id(id) 94 | local npc = obj_get_first_with_behavior_id(id_bhvNpc) 95 | local match = nil 96 | while npc ~= nil do 97 | if npc.oNpcId == id then 98 | match = npc 99 | break 100 | end 101 | npc = obj_get_next_with_same_behavior_id(npc) 102 | end 103 | return match 104 | end -------------------------------------------------------------------------------- /mods/archived/lgbt-goombas/bi-moveset.lua: -------------------------------------------------------------------------------- 1 | --- @param m MarioState 2 | function act_spin_jump(m) 3 | set_mario_animation(m, MARIO_ANIM_TWIRL) 4 | m.angleVel.y = m.angleVel.y - 0x1000 5 | m.vel.y = 10 6 | m.particleFlags = m.particleFlags | PARTICLE_SPARKLES 7 | if m.actionTimer == 0 then 8 | play_sound(SOUND_ACTION_SPIN, m.marioObj.header.gfx.cameraToObject) 9 | elseif m.actionTimer > 15 then 10 | set_mario_action(m, ACT_FREEFALL, 0) 11 | end 12 | m.actionTimer = m.actionTimer + 1 13 | m.pos.y = m.pos.y + math.sin(m.actionTimer * 0.5) * 5 14 | 15 | update_air_with_turn(m) 16 | switch(perform_air_step(m, 0), { 17 | [AIR_STEP_LANDED] = function() 18 | set_mario_action(m, ACT_DECELERATING, 0) 19 | end, 20 | [AIR_STEP_HIT_WALL] = function() 21 | if (m.input & INPUT_A_PRESSED) ~= 0 then 22 | set_mario_action(m, ACT_WALL_KICK_AIR, 0) 23 | play_sound(SOUND_ACTION_BONK, m.marioObj.header.gfx.cameraToObject) 24 | m.faceAngle.y = m.faceAngle.y + 0x8000 25 | end 26 | end, 27 | [AIR_STEP_HIT_LAVA_WALL] = function() 28 | lava_boost_on_wall(m) 29 | end 30 | }) 31 | 32 | m.marioObj.header.gfx.angle.y = m.marioObj.header.gfx.angle.y + m.angleVel.y 33 | end 34 | 35 | ACT_SPIN_JUMP = allocate_mario_action(ACT_GROUP_AIRBORNE | ACT_FLAG_AIR | ACT_FLAG_MOVING | ACT_FLAG_ALLOW_VERTICAL_WIND_ACTION | ACT_FLAG_ATTACKING) 36 | 37 | --- @param m MarioState 38 | function update_bi_air_with_turn(m) 39 | local dragThreshold 40 | local intendedDYaw 41 | local intendedMag 42 | 43 | if check_horizontal_wind(m) == 0 then 44 | dragThreshold = if_then_else(m.action == ACT_LONG_JUMP, 48, 32) 45 | m.forwardVel = approach_number(m.forwardVel, 0, 0.35, 0.35) 46 | 47 | if (m.input & INPUT_NONZERO_ANALOG) ~= 0 then 48 | intendedDYaw = m.intendedYaw - m.faceAngle.y 49 | if intendedDYaw > 32767 then intendedDYaw = intendedDYaw - 65536 end 50 | if intendedDYaw < -32768 then intendedDYaw = intendedDYaw + 65536 end 51 | intendedMag = m.intendedMag / 32 52 | 53 | m.forwardVel = m.forwardVel + 1.5 * coss(intendedDYaw) * intendedMag 54 | m.faceAngle.y = m.faceAngle.y + math.floor(1024 * sins(intendedDYaw) * intendedMag) 55 | end 56 | 57 | --! Uncapped air speed. Net positive when moving forward. 58 | if m.forwardVel > dragThreshold then 59 | m.forwardVel = m.forwardVel - 1 60 | end 61 | if m.forwardVel < -16 then 62 | m.forwardVel = m.forwardVel + 2 63 | end 64 | 65 | m.slideVelX = m.forwardVel * sins(m.faceAngle.y) 66 | m.slideVelZ = m.forwardVel * coss(m.faceAngle.y) 67 | m.vel.x = m.slideVelX 68 | m.vel.z = m.slideVelZ 69 | end 70 | end 71 | 72 | canSpinJump = true 73 | 74 | --- @param m MarioState 75 | function before_bi_phys_step(m) 76 | if m.action == ACT_TWIRLING and (m.input & INPUT_Z_DOWN) ~= 0 then m.vel.y = m.vel.y - 50 end 77 | 78 | if m.wall ~= nil and (m.action & ACT_FLAG_AIR) ~= 0 then m.controller.buttonDown = m.controller.buttonDown & ~A_BUTTON end 79 | 80 | if m.forwardVel > 5 and (m.action & ACT_FLAG_AIR) ~= 0 then update_bi_air_with_turn(m) end 81 | 82 | if m.playerIndex == 0 then 83 | if m.pos.y <= m.floorHeight then canSpinJump = true end 84 | if (m.action == ACT_LONG_JUMP or m.action == ACT_JUMP_KICK or m.action == ACT_DIVE) and (m.input & INPUT_B_PRESSED) ~= 0 and canSpinJump then 85 | canSpinJump = false 86 | set_mario_action(m, ACT_SPIN_JUMP, 0) 87 | end 88 | end 89 | if m.action == ACT_TRIPLE_JUMP then set_mario_action(m, ACT_DOUBLE_JUMP, 0) end 90 | 91 | if (m.action & ACT_FLAG_SWIMMING) ~= 0 then 92 | m.vel.x = m.vel.x * 0.7 93 | m.vel.z = m.vel.z * 0.7 94 | else 95 | m.vel.x = m.vel.x * 1.25 96 | m.vel.z = m.vel.z * 1.25 97 | end 98 | end 99 | 100 | hook_mario_action(ACT_SPIN_JUMP, act_spin_jump, INTERACT_DAMAGE) -------------------------------------------------------------------------------- /mods/archived/galaxy-star-select/a-utils.lua: -------------------------------------------------------------------------------- 1 | function approach_number(current, target, inc, dec) 2 | if current < target then 3 | current = current + inc 4 | if current > target then 5 | current = target 6 | end 7 | else 8 | current = current - dec 9 | if current < target then 10 | current = target 11 | end 12 | end 13 | return current 14 | end 15 | 16 | function if_then_else(cond, ifTrue, ifFalse) 17 | if cond then return ifTrue end 18 | return ifFalse 19 | end 20 | 21 | function switch(param, case_table) 22 | local case = case_table[param] 23 | if case then return case() end 24 | local def = case_table['default'] 25 | return def and def() or nil 26 | end 27 | 28 | function clamp(x, a, b) 29 | if x < a then return a end 30 | if x > b then return b end 31 | return x 32 | end 33 | 34 | function normalize(number) return tostring(number):gsub("-", "M") end 35 | 36 | function level_to_course(level) 37 | local levelToCourse = { 38 | [LEVEL_NONE] = COURSE_NONE, 39 | [LEVEL_BOB] = COURSE_BOB, 40 | [LEVEL_WF] = COURSE_WF, 41 | [LEVEL_JRB] = COURSE_JRB, 42 | [LEVEL_CCM] = COURSE_CCM, 43 | [LEVEL_BBH] = COURSE_BBH, 44 | [LEVEL_HMC] = COURSE_HMC, 45 | [LEVEL_LLL] = COURSE_LLL, 46 | [LEVEL_SSL] = COURSE_SSL, 47 | [LEVEL_DDD] = COURSE_DDD, 48 | [LEVEL_SL] = COURSE_SL, 49 | [LEVEL_WDW] = COURSE_WDW, 50 | [LEVEL_TTM] = COURSE_TTM, 51 | [LEVEL_THI] = COURSE_THI, 52 | [LEVEL_TTC] = COURSE_TTC, 53 | [LEVEL_RR] = COURSE_RR, 54 | [LEVEL_BITDW] = COURSE_BITDW, 55 | [LEVEL_BITFS] = COURSE_BITFS, 56 | [LEVEL_BITS] = COURSE_BITS, 57 | [LEVEL_PSS] = COURSE_PSS, 58 | [LEVEL_COTMC] = COURSE_COTMC, 59 | [LEVEL_TOTWC] = COURSE_TOTWC, 60 | [LEVEL_VCUTM] = COURSE_VCUTM, 61 | [LEVEL_WMOTR] = COURSE_WMOTR, 62 | [LEVEL_SA] = COURSE_SA, 63 | [LEVEL_ENDING] = COURSE_CAKE_END, 64 | } 65 | 66 | return levelToCourse[level] or COURSE_NONE 67 | end 68 | 69 | function play_djui_transition(fadeIn, time, red, green, blue) 70 | sDjuiTransition.color = { r = red, g = green, b = blue } 71 | sDjuiTransition.fadeIn = fadeIn 72 | sDjuiTransition.fadeAlpha = if_then_else(fadeIn, 255, 0) 73 | sDjuiTransition.time = time 74 | end 75 | 76 | function update_djui_transitions() 77 | if sDjuiTransition.fadeAlpha < 0 then return end 78 | 79 | djui_hud_set_resolution(RESOLUTION_DJUI) 80 | if sDjuiTransition.fadeIn then 81 | sDjuiTransition.fadeAlpha = sDjuiTransition.fadeAlpha - (255 / sDjuiTransition.time) 82 | 83 | if sDjuiTransition.fadeAlpha < 0 then 84 | sDjuiTransition.fadeAlpha = -1 85 | return 86 | end 87 | else 88 | sDjuiTransition.fadeAlpha = sDjuiTransition.fadeAlpha + (255 / sDjuiTransition.time) 89 | 90 | if sDjuiTransition.fadeAlpha > 255 then 91 | sDjuiTransition.fadeAlpha = -1 92 | return 93 | end 94 | end 95 | djui_hud_set_color(sDjuiTransition.color.r, sDjuiTransition.color.g, sDjuiTransition.color.b, sDjuiTransition.fadeAlpha) 96 | djui_hud_render_rect(-2, -2, djui_hud_get_screen_width() + 2, djui_hud_get_screen_height() + 2) 97 | end 98 | 99 | --- @param o Object 100 | function obj_nearest_painting_info(o) 101 | if o == nil then return LEVEL_NONE end 102 | local nearest = LEVEL_NONE 103 | local nearestDist = 0 104 | for k, v in pairs(gPaintingPositions) do 105 | local dist = 0 106 | local area = 1 107 | if v[2] ~= nil then 108 | local dist1 = vec3f_dist({x = o.oPosX, y = o.oPosY, z = o.oPosZ }, v[1]) 109 | local dist2 = vec3f_dist({x = o.oPosX, y = o.oPosY, z = o.oPosZ }, v[2]) 110 | dist = math.min(dist1, dist2) 111 | if dist2 < dist1 then 112 | area = 2 113 | end 114 | else 115 | dist = vec3f_dist({x = o.oPosX, y = o.oPosY, z = o.oPosZ }, v[1]) 116 | end 117 | if nearest == LEVEL_NONE or dist < nearestDist then 118 | nearest = { level = k, area = area } 119 | nearestDist = dist 120 | end 121 | end 122 | 123 | return nearest 124 | end -------------------------------------------------------------------------------- /mods/day-night-cycle/a-utils.lua: -------------------------------------------------------------------------------- 1 | -- localize functions to improve performance 2 | local mod_storage_load,string_format,table_insert,type,math_ceil,math_lerp,math_round,level_is_vanilla_level,djui_hud_get_color,djui_hud_set_color,djui_hud_print_text,obj_get_first_with_behavior_id = mod_storage_load,string.format,table.insert,type,math.ceil,math.lerp,math.round,level_is_vanilla_level,djui_hud_get_color,djui_hud_set_color,djui_hud_print_text,obj_get_first_with_behavior_id 3 | 4 | --- @param key string 5 | --- `mod_storage_load_bool` except it returns true by default 6 | function mod_storage_load_bool_2(key) 7 | local value = mod_storage_load(key) 8 | if value == nil then return true end 9 | return value == "true" 10 | end 11 | 12 | --- @param s string 13 | --- Splits a string into a table by spaces 14 | function string_split(s) 15 | local result = {} 16 | for match in (s):gmatch(string_format("[^%s]+", " ")) do 17 | table_insert(result, match) 18 | end 19 | return result 20 | end 21 | 22 | --- @param table table 23 | --- Clones a table out of an existing one, useful for making referenceless tables 24 | function table_clone(table) 25 | local clone = {} 26 | for key, value in pairs(table) do 27 | if type(value) == "table" then 28 | clone[key] = table_clone(value) -- recursive call for nested tables 29 | else 30 | clone[key] = value 31 | end 32 | end 33 | return clone 34 | end 35 | 36 | --- @param cond boolean 37 | --- Human readable ternary operator 38 | function if_then_else(cond, ifTrue, ifFalse) 39 | if cond then return ifTrue end 40 | return ifFalse 41 | end 42 | 43 | --- @param value boolean 44 | --- Returns an on or off string depending on value 45 | function on_or_off(value) 46 | if value then return "\\#00ff00\\ON" end 47 | return "\\#ff0000\\OFF" 48 | end 49 | 50 | --- @param a number 51 | --- @param b number 52 | --- @param t number 53 | --- Linearly interpolates between two points using a delta but ceils the final value 54 | function lerp_ceil(a, b, t) 55 | return math_ceil(math_lerp(a, b, t)) 56 | end 57 | 58 | --- @param a number 59 | --- @param b number 60 | --- @param t number 61 | --- Linearly interpolates between two points using a delta but rounds the final value 62 | function lerp_round(a, b, t) 63 | return math_round(math_lerp(a, b, t)) 64 | end 65 | 66 | --- @param a Color 67 | --- @param b Color 68 | --- @return Color 69 | --- Linearly interpolates between two colors using a delta 70 | function color_lerp(a, b, t) 71 | return { 72 | r = lerp_round(a.r, b.r, t), 73 | g = lerp_round(a.g, b.g, t), 74 | b = lerp_round(a.b, b.b, t) 75 | } 76 | end 77 | 78 | --- @param priority integer 79 | --- @param seqId SeqId 80 | --- Generates a sequence ID integer with priority 81 | function SEQUENCE_ARGS(priority, seqId) 82 | return ((priority << 8) | seqId) 83 | end 84 | 85 | --- @param levelNum LevelNum 86 | --- Returns whether or not the local player is in a vanilla level 87 | function in_vanilla_level(levelNum) 88 | return gNetworkPlayers[0].currLevelNum == levelNum and level_is_vanilla_level(levelNum) 89 | end 90 | 91 | --- @param message string 92 | --- @param x number 93 | --- @param y number 94 | --- @param scale number 95 | --- Prints outlined DJUI HUD text 96 | function djui_hud_print_outlined_text(message, x, y, scale) 97 | local hudColor = djui_hud_get_color() 98 | djui_hud_set_color(0, 0, 0, hudColor.a) 99 | djui_hud_print_text(message, x - 1, y, scale) 100 | djui_hud_print_text(message, x + 1, y, scale) 101 | djui_hud_print_text(message, x, y - 1, scale) 102 | djui_hud_print_text(message, x, y + 1, scale) 103 | djui_hud_set_color(hudColor.r, hudColor.g, hudColor.b, hudColor.a) 104 | djui_hud_print_text(message, x, y, scale) 105 | end 106 | 107 | --- Checks common conditions that make HUD rendering out of place 108 | function check_common_hud_render_cancels() 109 | local action = gMarioStates[0].action 110 | return obj_get_first_with_behavior_id(id_bhvActSelector) ~= nil or 111 | gNetworkPlayers[0].currActNum == 99 or 112 | gNetworkPlayers[0].currLevelNum == LEVEL_BOWSER_3 or 113 | gNetworkPlayers[0].currLevelNum == LEVEL_ENDING or 114 | action == ACT_END_PEACH_CUTSCENE or action == ACT_END_WAVING_CUTSCENE or action == ACT_CREDITS_CUTSCENE 115 | end -------------------------------------------------------------------------------- /mods/gun-mod/c-viewmodel-animations.lua: -------------------------------------------------------------------------------- 1 | smlua_anim_util_register_animation("arm_idle", 2 | 0, 3 | 189, 4 | 0, 5 | 0, 6 | 60, 7 | { 8 | 0x0000, 0xFFDD, 0x0000, 0x0000, 0x0000, 0xDFFF, 0xE000, 0xE002, 0xE006, 9 | 0xE00B, 0xE011, 0xE019, 0xE021, 0xE02A, 0xE034, 0xE03F, 0xE04A, 0xE056, 10 | 0xE061, 0xE06E, 0xE07A, 0xE086, 0xE092, 0xE09E, 0xE0AA, 0xE0B5, 0xE0C0, 11 | 0xE0CA, 0xE0D3, 0xE0DB, 0xE0E2, 0xE0E9, 0xE0EE, 0xE0F1, 0xE0F4, 0xE0F5, 12 | 0xE0F4, 0xE0F1, 0xE0EE, 0xE0E9, 0xE0E2, 0xE0DB, 0xE0D3, 0xE0CA, 0xE0C0, 13 | 0xE0B5, 0xE0AA, 0xE09E, 0xE092, 0xE086, 0xE07A, 0xE06E, 0xE061, 0xE056, 14 | 0xE04A, 0xE03F, 0xE034, 0xE02A, 0xE021, 0xE019, 0xE011, 0xE00B, 0xE006, 15 | 0xE002, 0xE000, 0xDFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 16 | 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 17 | 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 18 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 19 | 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 20 | 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0x0000, 21 | 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 22 | 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 23 | 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 24 | 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 25 | 0x0000, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 26 | 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0xFFFF, 0x0000, 27 | 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 28 | 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0x2000, 29 | }, 30 | { 31 | 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0002, 0x0001, 0x0003, 0x0001, 32 | 0x0004, 0x003D, 0x0005, 0x003D, 0x0042, 0x003D, 0x007F, 0x0001, 0x00BC, 33 | } 34 | ) 35 | 36 | smlua_anim_util_register_animation("arm_reload_start", 37 | 1, 38 | 189, 39 | 0, 40 | 0, 41 | 15, 42 | { 43 | 0x0000, 0xFFE7, 0x0000, 0x0000, 0x0000, 0xDFFF, 0xE178, 0xE4FF, 0xE938, 44 | 0xECBF, 0xEE38, 0xECF3, 0xE973, 0xE428, 0xDD93, 0xD64E, 0xCF09, 0xC874, 45 | 0xC32A, 0xBFA9, 0xBE64, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 46 | 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 47 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 48 | 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 0x0000, 0x2000, 0x2000, 49 | 0x2000, 0x2000, 0x2000, 0x2000, 0x1F2B, 0x1CE6, 0x1984, 0x155F, 0x10D5, 50 | 0x0C4C, 0x0826, 0x04C5, 0x027F, 0x01AA, 51 | }, 52 | { 53 | 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0002, 0x0001, 0x0003, 0x0001, 54 | 0x0004, 0x0010, 0x0005, 0x000F, 0x0015, 0x0010, 0x0024, 0x0010, 0x0034, 55 | } 56 | ) 57 | 58 | smlua_anim_util_register_animation("arm_reload_end", 59 | 1, 60 | 189, 61 | 0, 62 | 0, 63 | 15, 64 | { 65 | 0x0000, 0xFFDD, 0x0000, 0x0000, 0x0000, 0xBE64, 0xBECF, 0xBFFC, 0xC1D1, 66 | 0xC432, 0xC704, 0xCA28, 0xCD7E, 0xD0E5, 0xD43C, 0xD760, 0xDA31, 0xDC92, 67 | 0xDE67, 0xDF94, 0xDFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0000, 0xFFFF, 68 | 0x0000, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 0xFFFF, 0x0000, 69 | 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0x0000, 0xFFFF, 70 | 0xFFFF, 0xFFFF, 0x0000, 0xFD70, 0xFDDE, 0xFF13, 0x00F6, 0x0368, 0x064E, 71 | 0x0989, 0x0CF8, 0x1079, 0x13E8, 0x1723, 0x1A09, 0x1C7B, 0x1E5D, 0x1F92, 72 | 0x2000, 73 | }, 74 | { 75 | 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0002, 0x0001, 0x0003, 0x0001, 76 | 0x0004, 0x0010, 0x0005, 0x000C, 0x0015, 0x000F, 0x0021, 0x0010, 0x0030, 77 | } 78 | ) 79 | 80 | smlua_anim_util_register_animation("arm_shoot", 81 | 1, 82 | 189, 83 | 0, 84 | 0, 85 | 8, 86 | { 87 | 0x0000, 0xFFDD, 0x0000, 0x0000, 0x0000, 0xDFFF, 0x0000, 0x0000, 0x0000, 88 | 0x0000, 0x0000, 0xFFFF, 0x0000, 0x0000, 0x0000, 0xFFFF, 0xFFFF, 0xFFFF, 89 | 0x0000, 0xFFFF, 0x0000, 0x2000, 0x21AA, 0x2555, 0x2901, 0x2AAB, 0x2901, 90 | 0x2555, 0x21AA, 0x2000, 91 | }, 92 | { 93 | 0x0001, 0x0000, 0x0001, 0x0001, 0x0001, 0x0002, 0x0001, 0x0003, 0x0001, 94 | 0x0004, 0x0001, 0x0005, 0x0007, 0x0006, 0x0008, 0x000D, 0x0009, 0x0015, 95 | } 96 | ) -------------------------------------------------------------------------------- /mods/archived/lgbt-goombas/main.lua: -------------------------------------------------------------------------------- 1 | -- name: LGBT Goombas 2 | -- incompatible: moveset 3 | -- description: LGBT Goombas\nBy \\#ec7731\\Agent X\\#dcdcdc\\\n\nThis mod adds LGBT flag Goombas, toggle with /lgbt [on|off]\n\nPan Goomba: Faster in snow levels, roll\nreplaces slide kick.\n\nBi Goomba: Improved moveset Goomba, has a spin jump and good air control.\n\nTrans Goomba: Loosely based off of Celeste's moveset with double jumps, dashing and wall climbing.\n\nAce Goomba: Crouch and hold down X or\nY to charge up a power jump.\n\nLesbian Goomba: Swims faster and has a special spin attack.\n\n\nSpecial thanks to 0x2480 for creating the strawberry model that goes over stars. 4 | 5 | goombas = { 6 | [CT_MARIO] = smlua_model_util_get_id("goomba_pan_geo"), 7 | [CT_LUIGI] = smlua_model_util_get_id("goomba_bi_geo"), 8 | [CT_TOAD] = smlua_model_util_get_id("goomba_trans_geo"), 9 | [CT_WALUIGI] = smlua_model_util_get_id("goomba_asexual_geo"), 10 | [CT_WARIO] = smlua_model_util_get_id("goomba_lesbian_geo") 11 | } 12 | 13 | excludedActions = { 14 | [ACT_FLYING] = ACT_FLYING, 15 | [ACT_WATER_JUMP] = ACT_WATER_JUMP, 16 | [ACT_HOLD_WATER_JUMP] = ACT_HOLD_WATER_JUMP, 17 | [ACT_SHOT_FROM_CANNON] = ACT_SHOT_FROM_CANNON, 18 | 19 | [ACT_FORWARD_GROUND_KB] = ACT_FORWARD_GROUND_KB, 20 | [ACT_BACKWARD_GROUND_KB] = ACT_BACKWARD_GROUND_KB, 21 | [ACT_SOFT_FORWARD_GROUND_KB] = ACT_SOFT_FORWARD_GROUND_KB, 22 | [ACT_HARD_BACKWARD_GROUND_KB] = ACT_HARD_BACKWARD_GROUND_KB, 23 | 24 | [ACT_FORWARD_AIR_KB] = ACT_FORWARD_AIR_KB, 25 | [ACT_BACKWARD_AIR_KB] = ACT_BACKWARD_AIR_KB, 26 | [ACT_HARD_FORWARD_AIR_KB] = ACT_HARD_FORWARD_AIR_KB, 27 | [ACT_HARD_BACKWARD_AIR_KB] = ACT_HARD_BACKWARD_AIR_KB 28 | } 29 | 30 | function if_then_else(cond, if_true, if_false) 31 | if cond then return if_true end 32 | return if_false 33 | end 34 | 35 | function approach_number(current, target, inc, dec) 36 | if current < target then 37 | current = current + inc 38 | if current > target then 39 | current = target 40 | end 41 | else 42 | current = current - dec 43 | if current < target then 44 | current = target 45 | end 46 | end 47 | return current 48 | end 49 | 50 | function switch(param, case_table) 51 | local case = case_table[param] 52 | if case then return case() end 53 | local def = case_table['default'] 54 | return def and def() or nil 55 | end 56 | 57 | jumpCount = 1 58 | --- @param m MarioState 59 | function mario_update(m) 60 | if gPlayerSyncTable[m.playerIndex].lgbt then 61 | obj_set_model_extended(m.marioObj, goombas[m.character.type]) 62 | end 63 | 64 | if m.playerIndex ~= 0 then return end 65 | 66 | if gPlayerSyncTable[0].lgbt then 67 | switch(m.character.type, { 68 | [CT_WALUIGI] = function() 69 | if (m.action == ACT_CROUCHING or m.action == ACT_CROUCH_SLIDE) and (m.controller.buttonDown & Y_BUTTON) ~= 0 then 70 | set_mario_action(m, ACT_POWER_JUMP, 0) 71 | end 72 | end, 73 | [CT_WARIO] = function() 74 | if m.terrainSoundAddend == 0x20000 and m.pos.y < m.waterLevel then -- stepping in water 75 | m.health = m.health + 2 76 | if m.health > 0x880 then m.health = 0x880 end 77 | end 78 | end, 79 | }) 80 | end 81 | end 82 | 83 | --- @param m MarioState 84 | function before_phys_step(m) 85 | if m.playerIndex ~= 0 or not gPlayerSyncTable[0].lgbt then return end 86 | 87 | if excludedActions[m.action] == nil then 88 | switch(m.character.type, { 89 | [CT_MARIO] = function() before_pan_phys_step(m) end, 90 | [CT_LUIGI] = function() before_bi_phys_step(m) end, 91 | [CT_TOAD] = function() before_trans_phys_step(m) end, 92 | [CT_WALUIGI] = function() before_asexual_phys_step(m) end, 93 | [CT_WARIO] = function() before_lesbian_phys_step(m) end, 94 | }) 95 | end 96 | end 97 | 98 | --- @param m MarioState 99 | function on_player_connected(m) 100 | gPlayerSyncTable[m.playerIndex].lgbt = false 101 | end 102 | 103 | 104 | function on_lgbt_command(msg) 105 | if msg == "off" then 106 | gPlayerSyncTable[0].lgbt = false 107 | djui_chat_message_create("LGBT Goombas status: \\#ff0000\\OFF") 108 | else 109 | gPlayerSyncTable[0].lgbt = true 110 | djui_chat_message_create("LGBT Goombas status: \\#00ff00\\ON") 111 | end 112 | return true 113 | end 114 | 115 | hook_event(HOOK_MARIO_UPDATE, mario_update) 116 | hook_event(HOOK_BEFORE_PHYS_STEP, before_phys_step) 117 | hook_event(HOOK_ON_PLAYER_CONNECTED, on_player_connected) 118 | 119 | hook_chat_command("lgbt", "[on|off] to turn on LGBT goombas", on_lgbt_command) -------------------------------------------------------------------------------- /mods/archived/flood/a-utils.lua: -------------------------------------------------------------------------------- 1 | moveset = false 2 | 3 | for mod in pairs(gActiveMods) do 4 | if gActiveMods[mod].name:find("Object Spawner") or gActiveMods[mod].name:find("Noclip") then 5 | cheats = true 6 | end 7 | end 8 | 9 | for i in pairs(gActiveMods) do 10 | if (gActiveMods[i].incompatible ~= nil and gActiveMods[i].incompatible:find("moveset")) or (gActiveMods[i].name:find("Pasta") and gActiveMods[i].name:find("Castle")) then 11 | moveset = true 12 | end 13 | end 14 | 15 | -- localize functions to improve performance 16 | local math_floor,is_player_active,table_insert,is_game_paused,djui_hud_set_color = math.floor,is_player_active,table.insert,is_game_paused,djui_hud_set_color 17 | 18 | rom_hack_cam_set_collisions(false) 19 | 20 | -- Rounds up or down depending on the decimal position of `x`. 21 | --- @param x number 22 | --- @return integer 23 | function math_round(x) 24 | return if_then_else(x - math.floor(x) >= 0.5, math.ceil(x), math.floor(x)) 25 | end 26 | 27 | -- Recieves a value of any type and converts it into a boolean. 28 | function tobool(v) 29 | local type = type(v) 30 | if type == "boolean" then 31 | return v 32 | elseif type == "number" then 33 | return v == 1 34 | elseif type == "string" then 35 | return v == "true" 36 | elseif type == "table" or type == "function" or type == "thread" or type == "userdata" then 37 | return true 38 | end 39 | return false 40 | end 41 | 42 | function switch(param, case_table) 43 | local case = case_table[param] 44 | if case then return case() end 45 | local def = case_table['default'] 46 | return def and def() or nil 47 | end 48 | 49 | --- @param m MarioState 50 | function active_player(m) 51 | local np = gNetworkPlayers[m.playerIndex] 52 | if m.playerIndex == 0 then 53 | return 1 54 | end 55 | if not np.connected then 56 | return 0 57 | end 58 | if np.currCourseNum ~= gNetworkPlayers[0].currCourseNum then 59 | return 0 60 | end 61 | if np.currActNum ~= gNetworkPlayers[0].currActNum then 62 | return 0 63 | end 64 | if np.currLevelNum ~= gNetworkPlayers[0].currLevelNum then 65 | return 0 66 | end 67 | if np.currAreaIndex ~= gNetworkPlayers[0].currAreaIndex then 68 | return 0 69 | end 70 | return is_player_active(m) 71 | end 72 | 73 | function if_then_else(cond, ifTrue, ifFalse) 74 | if cond then return ifTrue end 75 | return ifFalse 76 | end 77 | 78 | function string_without_hex(name) 79 | local s = '' 80 | local inSlash = false 81 | for i = 1, #name do 82 | local c = name:sub(i,i) 83 | if c == '\\' then 84 | inSlash = not inSlash 85 | elseif not inSlash then 86 | s = s .. c 87 | end 88 | end 89 | return s 90 | end 91 | 92 | function on_or_off(value) 93 | if value then return "\\#00ff00\\ON" end 94 | return "\\#ff0000\\OFF" 95 | end 96 | 97 | function split(s) 98 | local result = {} 99 | for match in (s):gmatch(string.format("[^%s]+", " ")) do 100 | table.insert(result, match) 101 | end 102 | return result 103 | end 104 | 105 | function djui_hud_set_adjusted_color(r, g, b, a) 106 | local multiplier = 1 107 | if is_game_paused() then multiplier = 0.5 end 108 | djui_hud_set_color(r * multiplier, g * multiplier, b * multiplier, a) 109 | end 110 | 111 | function SEQUENCE_ARGS(priority, seqId) 112 | return ((priority << 8) | seqId) 113 | end 114 | 115 | --- @param m MarioState 116 | function mario_set_full_health(m) 117 | m.health = 0x880 118 | m.healCounter = 0 119 | m.hurtCounter = 0 120 | end 121 | 122 | local levelToCourse = { 123 | [LEVEL_NONE] = COURSE_NONE, 124 | [LEVEL_BOB] = COURSE_BOB, 125 | [LEVEL_WF] = COURSE_WF, 126 | [LEVEL_JRB] = COURSE_JRB, 127 | [LEVEL_CCM] = COURSE_CCM, 128 | [LEVEL_BBH] = COURSE_BBH, 129 | [LEVEL_HMC] = COURSE_HMC, 130 | [LEVEL_LLL] = COURSE_LLL, 131 | [LEVEL_SSL] = COURSE_SSL, 132 | [LEVEL_DDD] = COURSE_DDD, 133 | [LEVEL_SL] = COURSE_SL, 134 | [LEVEL_WDW] = COURSE_WDW, 135 | [LEVEL_TTM] = COURSE_TTM, 136 | [LEVEL_THI] = COURSE_THI, 137 | [LEVEL_TTC] = COURSE_TTC, 138 | [LEVEL_RR] = COURSE_RR, 139 | [LEVEL_BITDW] = COURSE_BITDW, 140 | [LEVEL_BITFS] = COURSE_BITFS, 141 | [LEVEL_BITS] = COURSE_BITS, 142 | [LEVEL_PSS] = COURSE_PSS, 143 | [LEVEL_COTMC] = COURSE_COTMC, 144 | [LEVEL_TOTWC] = COURSE_TOTWC, 145 | [LEVEL_VCUTM] = COURSE_VCUTM, 146 | [LEVEL_WMOTR] = COURSE_WMOTR, 147 | [LEVEL_SA] = COURSE_SA, 148 | [LEVEL_ENDING] = COURSE_CAKE_END, 149 | } 150 | 151 | function level_to_course(level) 152 | return levelToCourse[level] or COURSE_NONE 153 | end 154 | 155 | function timestamp(seconds) 156 | seconds = seconds / 30 157 | local minutes = math.floor(seconds / 60) 158 | local milliseconds = math.floor((seconds - math.floor(seconds)) * 1000) 159 | seconds = math.floor(seconds) % 60 160 | return string.format("%d:%02d:%03d", minutes, seconds, milliseconds) 161 | end -------------------------------------------------------------------------------- /mods/day-night-cycle/b-constants.lua: -------------------------------------------------------------------------------- 1 | -- version 2 | DNC_VERSION_MAJOR = 2 3 | DNC_VERSION_MINOR = 5 4 | DNC_VERSION_PATCH = 1 5 | DNC_VERSION = math.tointeger(string.format("%d%d%d", DNC_VERSION_MAJOR, DNC_VERSION_MINOR, DNC_VERSION_PATCH)) 6 | 7 | -- skybox constants 8 | E_MODEL_DNC_SKYBOX = smlua_model_util_get_id("dnc_skybox_geo") 9 | 10 | SKYBOX_SCALE = 600 11 | SKYBOX_DAY = 0 12 | SKYBOX_SUNSET = 1 13 | SKYBOX_NIGHT = 2 14 | 15 | -- background constants 16 | BACKGROUND_OCEAN_SKY_NIGHT = 10 17 | BACKGROUND_OCEAN_SKY_SUNRISE = 11 18 | BACKGROUND_OCEAN_SKY_SUNSET = 12 19 | BACKGROUND_UNDERWATER_CITY_NIGHT = 13 20 | BACKGROUND_UNDERWATER_CITY_SUNRISE = 14 21 | BACKGROUND_UNDERWATER_CITY_SUNSET = 15 22 | BACKGROUND_BELOW_CLOUDS_NIGHT = 16 23 | BACKGROUND_BELOW_CLOUDS_SUNRISE = 17 24 | BACKGROUND_BELOW_CLOUDS_SUNSET = 18 25 | BACKGROUND_SNOW_MOUNTAINS_NIGHT = 19 26 | BACKGROUND_SNOW_MOUNTAINS_SUNRISE = 20 27 | BACKGROUND_SNOW_MOUNTAINS_SUNSET = 21 28 | BACKGROUND_DESERT_NIGHT = 22 29 | BACKGROUND_DESERT_SUNRISE = 23 30 | BACKGROUND_DESERT_SUNSET = 24 31 | BACKGROUND_ABOVE_CLOUDS_NIGHT = 25 32 | BACKGROUND_ABOVE_CLOUDS_SUNRISE = 26 33 | BACKGROUND_ABOVE_CLOUDS_SUNSET = 27 34 | 35 | gNightSkyboxes = { 36 | [BACKGROUND_OCEAN_SKY] = BACKGROUND_OCEAN_SKY_NIGHT, 37 | [BACKGROUND_UNDERWATER_CITY] = BACKGROUND_UNDERWATER_CITY_NIGHT, 38 | [BACKGROUND_BELOW_CLOUDS] = BACKGROUND_BELOW_CLOUDS_NIGHT, 39 | [BACKGROUND_SNOW_MOUNTAINS] = BACKGROUND_SNOW_MOUNTAINS_NIGHT, 40 | [BACKGROUND_DESERT] = BACKGROUND_DESERT_NIGHT, 41 | [BACKGROUND_ABOVE_CLOUDS] = BACKGROUND_ABOVE_CLOUDS_NIGHT 42 | } 43 | 44 | gSunriseSkyboxes = { 45 | [BACKGROUND_OCEAN_SKY] = BACKGROUND_OCEAN_SKY_SUNRISE, 46 | [BACKGROUND_UNDERWATER_CITY] = BACKGROUND_UNDERWATER_CITY_SUNRISE, 47 | [BACKGROUND_BELOW_CLOUDS] = BACKGROUND_BELOW_CLOUDS_SUNRISE, 48 | [BACKGROUND_SNOW_MOUNTAINS] = BACKGROUND_SNOW_MOUNTAINS_SUNRISE, 49 | [BACKGROUND_DESERT] = BACKGROUND_DESERT_SUNRISE, 50 | [BACKGROUND_ABOVE_CLOUDS] = BACKGROUND_ABOVE_CLOUDS_SUNRISE 51 | } 52 | 53 | gSunsetSkyboxes = { 54 | [BACKGROUND_OCEAN_SKY] = BACKGROUND_OCEAN_SKY_SUNSET, 55 | [BACKGROUND_UNDERWATER_CITY] = BACKGROUND_UNDERWATER_CITY_SUNSET, 56 | [BACKGROUND_BELOW_CLOUDS] = BACKGROUND_BELOW_CLOUDS_SUNSET, 57 | [BACKGROUND_SNOW_MOUNTAINS] = BACKGROUND_SNOW_MOUNTAINS_SUNSET, 58 | [BACKGROUND_DESERT] = BACKGROUND_DESERT_SUNSET, 59 | [BACKGROUND_ABOVE_CLOUDS] = BACKGROUND_ABOVE_CLOUDS_SUNSET 60 | } 61 | 62 | -- time constants 63 | SECOND = 30 -- how many frames are in 1 second 64 | MINUTE = SECOND * 60 -- how many frames are in 1 minute 65 | 66 | 67 | -- Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec 68 | gSunriseTimes = { 6, 5, 6, 5, 5, 4, 4, 4, 5, 6, 6, 6 } 69 | gSunsetTimes = { 15, 16, 17, 18, 18, 19, 19, 19, 18, 17, 15, 14 } 70 | 71 | local MONTH = get_date_and_time().month + 1 72 | syncSun = mod_storage_load_bool_2("sync_sun") 73 | 74 | HOUR_SUNRISE_START_BASE = 4 75 | HOUR_SUNSET_START_BASE = 19 76 | 77 | HOUR_SUNRISE_DURATION = 1 78 | HOUR_SUNRISE_START = if_then_else(syncSun, gSunriseTimes[MONTH], HOUR_SUNRISE_START_BASE) 79 | HOUR_SUNRISE_END = HOUR_SUNRISE_START + HOUR_SUNRISE_DURATION 80 | 81 | HOUR_SUNSET_DURATION = 1 82 | HOUR_SUNSET_START = if_then_else(syncSun, gSunsetTimes[MONTH], HOUR_SUNSET_START_BASE) 83 | HOUR_SUNSET_END = HOUR_SUNSET_START + HOUR_SUNSET_DURATION 84 | 85 | HOUR_DAY_START = HOUR_SUNRISE_END + HOUR_SUNRISE_DURATION 86 | HOUR_NIGHT_START = HOUR_SUNSET_END + HOUR_SUNSET_DURATION 87 | 88 | REAL_MINUTE = 1 / 60 89 | 90 | -- lighting direction constants 91 | DIR_DARK = -0.4 92 | DIR_BRIGHT = 0 93 | 94 | -- fog intensity constants 95 | FOG_INTENSITY_NORMAL = 1.0 96 | FOG_INTENSITY_DENSE = 1.02 97 | 98 | -- colors 99 | COLOR_NIGHT = { r = 90, g = 100, b = 150 } 100 | COLOR_AMBIENT_NIGHT = { r = 70, g = 90, b = 150 } 101 | COLOR_SUNRISE = { r = 255, g = 250, b = 100 } 102 | COLOR_AMBIENT_SUNRISE = { r = 200, g = 200, b = 255 } 103 | COLOR_DAY = { r = 255, g = 255, b = 255 } 104 | COLOR_AMBIENT_DAY = { r = 255, g = 255, b = 255 } 105 | COLOR_SUNSET = { r = 255, g = 140, b = 80 } 106 | COLOR_AMBIENT_SUNSET = { r = 255, g = 140, b = 160 } 107 | 108 | FOG_COLOR_NIGHT = { r = 5, g = 5, b = 10 } 109 | 110 | COLOR_DISPLAY_DARK = { r = 48, g = 90, b = 200 } 111 | COLOR_DISPLAY_BRIGHT = { r = 255, g = 255, b = 80 } 112 | 113 | -- hook constants 114 | DNC_HOOK_SET_LIGHTING_COLOR = 0 115 | DNC_HOOK_SET_AMBIENT_LIGHTING_COLOR = 1 116 | DNC_HOOK_SET_LIGHTING_DIR = 2 117 | DNC_HOOK_SET_FOG_COLOR = 3 118 | DNC_HOOK_SET_FOG_INTENSITY = 4 119 | DNC_HOOK_SET_DISPLAY_TIME_COLOR = 5 120 | DNC_HOOK_SET_DISPLAY_TIME_POS = 6 121 | DNC_HOOK_DELETE_AT_DARK = 7 122 | DNC_HOOK_SET_TIME = 8 123 | DNC_HOOK_SET_SKYBOX_MODEL = 9 124 | DNC_HOOK_SUN_TIMES_CHANGED = 10 125 | DNC_HOOK_ON_HUD_RENDER_BEHIND = 11 -------------------------------------------------------------------------------- /mods/archived/galaxy-star-select/star-select-bhvs.lua: -------------------------------------------------------------------------------- 1 | --- @param o Object 2 | function bhv_galaxy_act_selector_star_init(o) 3 | o.oFlags = OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE 4 | o.oFaceAngleYaw = o.oFaceAngleYaw + 0x8000 5 | o.oStarSelectorSize = 3 6 | end 7 | 8 | --- @param o Object 9 | function bhv_galaxy_act_selector_star_loop(o) 10 | o.oFaceAngleRoll = o.oFaceAngleRoll + 0x600 11 | 12 | if sStarSelectHUD.selectedStar == o.oBehParams2ndByte then 13 | if sStarSelectHUD.starSelected then 14 | o.oPosX = approach_number(o.oPosX, 0, 20, 20) 15 | 16 | if o.oPosX == 0 then 17 | o.oFaceAngleRoll = o.oFaceAngleRoll + 0x800 18 | o.oStarSelectorSize = approach_number(o.oStarSelectorSize, 3, 0.09, 0.09) 19 | if o.oAction == 0 then 20 | play_character_sound(gMarioStates[0], CHAR_SOUND_LETS_A_GO) 21 | play_djui_transition(false, 30, 255, 255, 255) 22 | o.oAction = 1 23 | else 24 | if sDjuiTransition.fadeAlpha == 255 then 25 | warp_to_level(sStarSelectHUD.targetLevel, sStarSelectHUD.targetArea, sStarSelectHUD.selectedStar) 26 | play_djui_transition(true, 30, 255, 255, 255) 27 | end 28 | end 29 | else 30 | o.oStarSelectorSize = approach_number(o.oStarSelectorSize, 1.75, 0.09, 0.09) 31 | end 32 | else 33 | o.oStarSelectorSize = approach_number(o.oStarSelectorSize, 1.75, 0.09, 0.09) 34 | end 35 | else 36 | local scale = 0 37 | if not sStarSelectHUD.starSelected then 38 | if o.oBehParams2ndByte == 7 then 39 | scale = 0.75 40 | else 41 | scale = 1 42 | end 43 | end 44 | 45 | o.oStarSelectorSize = approach_number(o.oStarSelectorSize, scale, 0.09, 0.09) 46 | end 47 | 48 | obj_scale(o, o.oStarSelectorSize) 49 | end 50 | 51 | id_bhvGalaxyActSelectorStar = hook_behavior(nil, OBJ_LIST_DEFAULT, true, bhv_galaxy_act_selector_star_init, bhv_galaxy_act_selector_star_loop) 52 | 53 | --- @param o Object 54 | function bhv_galaxy_act_selector_init(o) 55 | local stars = save_file_get_star_flags(get_current_save_file_num() - 1, level_to_course(sStarSelectHUD.targetLevel) - 1) 56 | 57 | -- the first 6 stars 58 | for i = 0, 5 do 59 | local model = if_then_else((stars & (1 << i)) ~= 0, E_MODEL_STAR, E_MODEL_TRANSPARENT_STAR) 60 | sStarSelectHUD.stars[i + 1] = spawn_non_sync_object( 61 | id_bhvGalaxyActSelectorStar, 62 | model, 63 | 500 - (i * 200), 0, 0, 64 | --- @param obj Object 65 | function(obj) 66 | obj.oBehParams2ndByte = i + 1 67 | end 68 | ) 69 | end 70 | 71 | -- 100 coin star 72 | if (stars & (1 << 6)) ~= 0 then 73 | spawn_non_sync_object( 74 | id_bhvGalaxyActSelectorStar, 75 | E_MODEL_STAR, 76 | 0, -130, 0, 77 | --- @param obj Object 78 | function(obj) 79 | obj.oBehParams2ndByte = 7 80 | end 81 | ) 82 | end 83 | end 84 | 85 | --- @param o Object 86 | function bhv_galaxy_act_selector_loop(o) 87 | --- @type MarioState 88 | local m = gMarioStates[0] 89 | 90 | if not sStarSelectHUD.starSelected then 91 | sStarSelectHUD.timeSinceMovedStick = sStarSelectHUD.timeSinceMovedStick + 1 92 | -- hack 93 | if m.controller.rawStickX < 4 and m.controller.rawStickX > -4 then 94 | sStarSelectHUD.timeSinceMovedStick = 7 95 | end 96 | if sStarSelectHUD.timeSinceMovedStick >= 7 then 97 | if m.controller.rawStickX > 60 then 98 | if sStarSelectHUD.selectedStar < 6 then 99 | sStarSelectHUD.selectedStar = sStarSelectHUD.selectedStar + 1 100 | play_sound(SOUND_MENU_CHANGE_SELECT, { x = 0, y = 0, z = 0 }) 101 | end 102 | sStarSelectHUD.timeSinceMovedStick = 0 103 | elseif m.controller.rawStickX < -60 then 104 | if sStarSelectHUD.selectedStar > 1 then 105 | sStarSelectHUD.selectedStar = sStarSelectHUD.selectedStar - 1 106 | play_sound(SOUND_MENU_CHANGE_SELECT, { x = 0, y = 0, z = 0 }) 107 | end 108 | sStarSelectHUD.timeSinceMovedStick = 0 109 | end 110 | end 111 | end 112 | 113 | local stars = save_file_get_star_flags(get_current_save_file_num() - 1, level_to_course(sStarSelectHUD.targetLevel) - 1) 114 | if ((stars & (1 << sStarSelectHUD.selectedStar - 2)) ~= 0 or (stars & (1 << sStarSelectHUD.selectedStar - 1)) ~= 0 or sStarSelectHUD.selectedStar == 1) and (m.controller.buttonPressed & (A_BUTTON | B_BUTTON | START_BUTTON)) ~= 0 and not sStarSelectHUD.starSelected and sStarSelectHUD.topBarY == 0 then 115 | sStarSelectHUD.starSelected = true 116 | play_sound(SOUND_MENU_STAR_SOUND, { x = 0, y = 0, z = 0 }) 117 | end 118 | end 119 | 120 | id_bhvGalaxyActSelector = hook_behavior(nil, OBJ_LIST_DEFAULT, true, bhv_galaxy_act_selector_init, bhv_galaxy_act_selector_loop) -------------------------------------------------------------------------------- /mods/gun-mod/c-viewmodel.lua: -------------------------------------------------------------------------------- 1 | local CAP_FLICKER_FRAMES = 0x4444449249255555 -- this is beyond my comprehension 2 | 3 | gFirstPersonViewmodels = { 4 | armObjs = { nil, nil }, 5 | gunObjs = { nil, nil } 6 | } 7 | 8 | --- @param o Object 9 | local function bhv_viewmodel_init(o) 10 | o.oFlags = OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE 11 | o.oGraphYOffset = 0 12 | end 13 | 14 | --- @param o Object 15 | local function bhv_viewmodel_loop(o) 16 | if not gGlobalSyncTable.gunModEnabled or not get_first_person_enabled() then 17 | obj_mark_for_deletion(o) 18 | return 19 | end 20 | 21 | local dualWield = obj_get_weapon_dual_wield(o) ~= 0 22 | --- @type Weapon 23 | local weapon = if_then_else(dualWield, cur_dual_wield_weapon(), cur_weapon()) 24 | 25 | if not weapon.reqCheck(gMarioStates[0]) then 26 | cur_obj_hide() 27 | else 28 | cur_obj_unhide() 29 | end 30 | 31 | local horizontalOffset = 30 32 | if cur_dual_wield_weapon() ~= nil then 33 | horizontalOffset = if_then_else(obj_get_weapon_dual_wield(o) ~= 0, -50, 50) 34 | end 35 | 36 | -- math to calculate staying in the same screen position no matter what 37 | o.oPosX = gLakituState.pos.x - 35 * coss(gFirstPersonCamera.pitch) * sins(gFirstPersonCamera.yaw) 38 | o.oPosY = gLakituState.pos.y - 35 * sins(gFirstPersonCamera.pitch) 39 | o.oPosZ = gLakituState.pos.z - 35 * coss(gFirstPersonCamera.pitch) * coss(gFirstPersonCamera.yaw) 40 | 41 | -- math to offset it to the left or right 42 | o.oPosX = o.oPosX + sins(gFirstPersonCamera.yaw + 0x4000) * horizontalOffset 43 | o.oPosZ = o.oPosZ + coss(gFirstPersonCamera.yaw + 0x4000) * horizontalOffset 44 | 45 | o.oFaceAnglePitch = 0 46 | o.oFaceAngleYaw = gFirstPersonCamera.yaw + 0x4000 47 | o.oFaceAngleRoll = -gFirstPersonCamera.pitch 48 | 49 | if weapon ~= nil then 50 | if weapon.deployTimer > 0 then 51 | obj_set_animation(o, "arm_reload_end") 52 | -- freeze animation if the time hasn't come to show the arm rising up 53 | if o.header.gfx.animInfo.animFrame > 0 and weapon.deployTimer - o.header.gfx.animInfo.curAnim.loopEnd > 0 then 54 | o.header.gfx.animInfo.animFrame = 0 55 | end 56 | else 57 | local half = math.floor(weapon.reloadTime * 0.5) 58 | if weapon.reloadTimer <= 0 then 59 | if weapon.cooldownTimer > 0 then 60 | obj_set_animation(o, "arm_shoot") 61 | else 62 | obj_set_animation(o, "arm_idle") 63 | -- *try* keep both arms in sync 64 | if dualWield then 65 | o.header.gfx.animInfo.animFrame = gFirstPersonViewmodels.armObjs[1].header.gfx.animInfo.animFrame 66 | end 67 | end 68 | elseif weapon.reloadTimer < half then 69 | obj_set_animation(o, "arm_reload_end") 70 | else 71 | obj_set_animation(o, "arm_reload_start") 72 | end 73 | end 74 | end 75 | 76 | 77 | o.globalPlayerIndex = gNetworkPlayers[0].globalIndex 78 | 79 | --- @type MarioState 80 | local m = gMarioStates[0] 81 | if m.capTimer < 64 and ((1 << m.capTimer) & CAP_FLICKER_FRAMES) ~= 0 then 82 | o.oAnimState = 0 83 | else 84 | local vanishCap = if_then_else((gMarioStates[0].flags & MARIO_VANISH_CAP) ~= 0, 2, 0) 85 | local metalCap = if_then_else((gMarioStates[0].flags & MARIO_METAL_CAP) ~= 0, 1, 0) 86 | o.oAnimState = metalCap + vanishCap 87 | end 88 | end 89 | 90 | id_bhvViewmodel = hook_behavior(nil, OBJ_LIST_GENACTOR, true, bhv_viewmodel_init, bhv_viewmodel_loop, "bhvGmViewmodel") 91 | 92 | 93 | --- @param weapon Weapon 94 | local function spawn_viewmodel(weapon, dualWield) 95 | local index = if_then_else(dualWield, 1, 2) 96 | dualWield = if_then_else(dualWield, 1, 0) 97 | 98 | gFirstPersonViewmodels.armObjs[index] = spawn_non_sync_object( 99 | id_bhvViewmodel, 100 | weapon.armModel, 101 | 0, -10000, 0, 102 | --- @param o Object 103 | function(o) 104 | obj_set_weapon_params(o, 0, 0, dualWield, 0) 105 | end 106 | ) 107 | 108 | gFirstPersonViewmodels.gunObjs[index] = spawn_non_sync_object( 109 | id_bhvViewmodel, 110 | weapon.model, 111 | 0, -10000, 0, 112 | --- @param o Object 113 | function(o) 114 | obj_set_weapon_params(o, 0, 0, dualWield, 0) 115 | end 116 | ) 117 | end 118 | 119 | function spawn_viewmodels() 120 | local weapon1 = cur_weapon() 121 | local weapon2 = cur_dual_wield_weapon() 122 | if weapon1 == nil then return end 123 | 124 | spawn_viewmodel(weapon1, false) 125 | if weapon2 ~= nil then spawn_viewmodel(weapon2, true) end 126 | end 127 | 128 | function delete_viewmodels() 129 | gFirstPersonViewmodels.armObjs[1] = obj_mark_for_deletion(gFirstPersonViewmodels.armObjs[1]) 130 | gFirstPersonViewmodels.armObjs[2] = obj_mark_for_deletion(gFirstPersonViewmodels.armObjs[2]) 131 | gFirstPersonViewmodels.gunObjs[1] = obj_mark_for_deletion(gFirstPersonViewmodels.gunObjs[1]) 132 | gFirstPersonViewmodels.gunObjs[2] = obj_mark_for_deletion(gFirstPersonViewmodels.gunObjs[2]) 133 | end --------------------------------------------------------------------------------