From fc33172861e14eaf66669a3c94199a2097e39fe9 Mon Sep 17 00:00:00 2001 From: Logicka Date: Wed, 14 May 2025 12:27:20 -0500 Subject: [PATCH] Re-enabled corpsexcosmetic removed trash mods, updated shader, added mods Removed: /eldritch awakening for having no content and crashing /vita craftis for spawning too many blood pigs and no spawnrules, as well as very little content and lazy instakill mob /dweller ores has been replaced by a far superior deeplings mod with actually scary mobs that have drops and a boss /defilex3dsun because the shader overrides this added: /Chatgpt garbage kubejs script that doesn't work but I've learned how to make it work in the next push /elytra slot /cosmetic armor reworked /voidscape, new bedrock based dimension accessible by standing on bedrock for too long or something like that. Modified: /sodiumdynamiclights and enhanced_bes because they were drawing performance despite being overriden by the shader. also the enhanced block entity mod was causing severe lag rendering large quantities of create contraptions with chests that spawned naturally. --- 1.20.1-FearFactoryTest/instance.cfg | 12 ++-- .../minecraft/config/darkness.properties | 2 +- .../minecraft/config/enhanced_bes.json | 21 +++++++ .../minecraft/config/oculus.properties | 2 +- .../config/sodiumdynamiclights-client.toml | 10 +-- .../kubejs/server_scripts/spawnrestrict.js | 56 +++++++++++++++++ ...a_Craftis_1-2v_mc1-20-1_gecolib_needed.jar | 3 - .../mods/Voidscape-1.20.1-1.5.389.jar | 3 + .../mods/cosmeticarmorreworked-1.20.1-v1a.jar | 3 + ...corpsecompat-1.19.x-1.20.x-Forge-1.0.0.jar | 3 + ...pat-1.19.x-1.20.x-Forge-1.0.0.jar.disabled | Bin 8802 -> 0 bytes .../mods/dweller_ores-1.0.0-forge-1.20.1.jar | 3 - ...ldritch_awakening-0.92.28-forge-1.20.1.jar | 3 - .../mods/elytraslot-forge-6.4.4+1.20.1.jar | 3 + 1.20.1-FearFactoryTest/minecraft/options.txt | 58 +++++++++--------- .../resourcepacks/Defile x 3D Sun Pack.zip | 3 - .../shaderpacks/Spooklementary_1.1.zip.txt | 5 +- 17 files changed, 135 insertions(+), 55 deletions(-) create mode 100644 1.20.1-FearFactoryTest/minecraft/config/enhanced_bes.json create mode 100644 1.20.1-FearFactoryTest/minecraft/kubejs/server_scripts/spawnrestrict.js delete mode 100644 1.20.1-FearFactoryTest/minecraft/mods/Vita_Craftis_1-2v_mc1-20-1_gecolib_needed.jar create mode 100644 1.20.1-FearFactoryTest/minecraft/mods/Voidscape-1.20.1-1.5.389.jar create mode 100644 1.20.1-FearFactoryTest/minecraft/mods/cosmeticarmorreworked-1.20.1-v1a.jar create mode 100644 1.20.1-FearFactoryTest/minecraft/mods/cosmeticcorpsecompat-1.19.x-1.20.x-Forge-1.0.0.jar delete mode 100644 1.20.1-FearFactoryTest/minecraft/mods/cosmeticcorpsecompat-1.19.x-1.20.x-Forge-1.0.0.jar.disabled delete mode 100644 1.20.1-FearFactoryTest/minecraft/mods/dweller_ores-1.0.0-forge-1.20.1.jar delete mode 100644 1.20.1-FearFactoryTest/minecraft/mods/eldritch_awakening-0.92.28-forge-1.20.1.jar create mode 100644 1.20.1-FearFactoryTest/minecraft/mods/elytraslot-forge-6.4.4+1.20.1.jar delete mode 100644 1.20.1-FearFactoryTest/minecraft/resourcepacks/Defile x 3D Sun Pack.zip diff --git a/1.20.1-FearFactoryTest/instance.cfg b/1.20.1-FearFactoryTest/instance.cfg index b9c6f5c..89cb627 100644 --- a/1.20.1-FearFactoryTest/instance.cfg +++ b/1.20.1-FearFactoryTest/instance.cfg @@ -40,12 +40,12 @@ PermGen=128 Profiler= UseAccountForInstance=false iconKey=default -lastLaunchTime=1747062411076 -lastTimePlayed=76183 +lastLaunchTime=1747240408826 +lastTimePlayed=770 linkedInstances=[] name=1.20.1 FearFactory notes= -totalTimePlayed=130884 +totalTimePlayed=175214 AutoCloseConsole=false CloseAfterLaunch=false CustomGLFWPath= @@ -75,6 +75,6 @@ UseZink=false WrapperCommand= [UI] -mods_Page\Columns=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\x1\0\0\0\x1\x1\0\0\0\0\0\0\0\0\0\0\0\v\x80\a\0\0\0\x4\0\0\0\a\0\0\0\x64\0\0\0\b\0\0\0\x64\0\0\0\n\0\0\0\x64\0\0\0\t\0\0\0\x64\0\0\x3\x39\0\0\0\v\x1\x1\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\v\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\xe1\0\0\0\x1\0\0\0\x1\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\x3\xe8\0\0\0\0\x64\0\0\0\0) -resourcepacks_Page\Columns=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\x1\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x2X\0\0\0\x6\x1\x1\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\x6\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\x1\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\x3\xe8\0\0\0\0\x64\0\0\0\0) -shaderpacks_Page\Columns=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\x1\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x1\x90\0\0\0\x4\x1\x1\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\x4\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\x1\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\x3\xe8\0\0\0\0\x64\0\0\0\0) +mods_Page\Columns=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\x2\x1\0\0\0\0\0\0\0\0\0\0\0\v\x80\a\0\0\0\x4\0\0\0\t\0\0\0\x64\0\0\0\n\0\0\0\x64\0\0\0\b\0\0\0\x64\0\0\0\a\0\0\0\x64\0\0\x3\xe9\0\0\0\v\x1\x1\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\v\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\x1\x91\0\0\0\x1\0\0\0\x1\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\x3\xe8\0\0\0\0\x64\0\0\0\0) +resourcepacks_Page\Columns=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\x1\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\t\x1\0\0\0\x6\x1\x1\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\x6\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\a\r\0\0\0\x1\0\0\0\x1\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\x3\xe8\0\0\0\0\x64\0\0\0\0) +shaderpacks_Page\Columns=@ByteArray(\0\0\0\xff\0\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\x1\x1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x1M\0\0\0\x4\x1\x1\0\0\0\0\0\0\x1\0\0\0\0\0\0\0\x64\xff\xff\xff\xff\0\0\0\x81\0\0\0\0\0\0\0\x4\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0!\0\0\0\x1\0\0\0\x1\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\0\x64\0\0\0\x1\0\0\0\0\0\0\x3\xe8\0\0\0\0\x64\0\0\0\0) diff --git a/1.20.1-FearFactoryTest/minecraft/config/darkness.properties b/1.20.1-FearFactoryTest/minecraft/config/darkness.properties index d795dbf..ea1cd33 100644 --- a/1.20.1-FearFactoryTest/minecraft/config/darkness.properties +++ b/1.20.1-FearFactoryTest/minecraft/config/darkness.properties @@ -1,5 +1,5 @@ #Darkness properties file -#Tue May 13 20:42:07 CDT 2025 +#Wed May 14 11:37:50 CDT 2025 dark_nether_fog=0.5 only_affect_block_light=false dark_end_fog=0.0 diff --git a/1.20.1-FearFactoryTest/minecraft/config/enhanced_bes.json b/1.20.1-FearFactoryTest/minecraft/config/enhanced_bes.json new file mode 100644 index 0000000..61887f1 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/config/enhanced_bes.json @@ -0,0 +1,21 @@ +{ + "renderEnhancedChests": false, + "renderEnhancedSigns": true, + "renderEnhancedBells": true, + "renderEnhancedBeds": true, + "renderEnhancedShulkerBoxes": false, + "renderEnhancedDecoratedPots": true, + "chestAO": false, + "signAO": false, + "bellAO": true, + "bedAO": false, + "shulkerBoxAO": false, + "decoratedPotAO": false, + "experimentalChests": false, + "experimentalBeds": true, + "experimentalSigns": true, + "forceResourcePackCompat": false, + "forceMFAPICompat": false, + "christmasChests": "DISABLED", + "signTextRendering": "SMART" +} diff --git a/1.20.1-FearFactoryTest/minecraft/config/oculus.properties b/1.20.1-FearFactoryTest/minecraft/config/oculus.properties index a4bb7e9..475a0de 100644 --- a/1.20.1-FearFactoryTest/minecraft/config/oculus.properties +++ b/1.20.1-FearFactoryTest/minecraft/config/oculus.properties @@ -1,5 +1,5 @@ #This file stores configuration options for Iris, such as the currently active shaderpack -#Tue May 13 21:00:23 CDT 2025 +#Wed May 14 11:34:02 CDT 2025 colorSpace=SRGB disableUpdateMessage=false enableDebugOptions=false diff --git a/1.20.1-FearFactoryTest/minecraft/config/sodiumdynamiclights-client.toml b/1.20.1-FearFactoryTest/minecraft/config/sodiumdynamiclights-client.toml index 9d6bd77..4ac86bb 100644 --- a/1.20.1-FearFactoryTest/minecraft/config/sodiumdynamiclights-client.toml +++ b/1.20.1-FearFactoryTest/minecraft/config/sodiumdynamiclights-client.toml @@ -2,15 +2,15 @@ [sodiumdynamiclights] #Lighting mode #Allowed Values: OFF, SLOW, FAST, REALTIME - mode = "REALTIME" + mode = "OFF" #Enable entities light source. - entities = true + entities = false #Enable first-person player light source. - self = true + self = false #Enable block entities light source. - block_entities = true + block_entities = false #Enables water-sensitive light sources check. This means that water-sensitive items will not light up when submerged in water. - water_sensitive_check = true + water_sensitive_check = false #TNT lighting mode. May be off, simple or fancy. #Allowed Values: OFF, SIMPLE, FANCY tnt = "SIMPLE" diff --git a/1.20.1-FearFactoryTest/minecraft/kubejs/server_scripts/spawnrestrict.js b/1.20.1-FearFactoryTest/minecraft/kubejs/server_scripts/spawnrestrict.js new file mode 100644 index 0000000..8d1771a --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/kubejs/server_scripts/spawnrestrict.js @@ -0,0 +1,56 @@ +// priority: 0 +/* +// Visit the wiki for more info - https://kubejs.com/ +EntityEvents.entityCheckSpawn(event => { + const { entity, level, pos, spawnReason } = event; + + // Only apply restrictions to natural spawns + if (spawnReason !== 'natural') return; + + const spawnRules = { + 'minecraft:creeper': { + dimensions: ['minecraft:the_nether'], + blockWhitelist: ['minecraft:netherrack'], + minLight: 0, + maxLight: 14, + timeRange: [0, 24000] // Night + }, + 'minecraft:enderman': { + dimensions: ['minecraft:overworld'], + blockWhitelist: ['minecraft:grass_block'], + minLight: 0, + maxLight: 7, + timeRange: [12000, 24000] // Late dusk/night + } + }; + + const rule = spawnRules[entity.type]; + if (!rule) return; // No restrictions + + const dimMatch = rule.dimensions.includes(level.dimension); + const blockBelow = level.getBlock(pos.down()).id; + const blockMatch = rule.blockWhitelist.includes(blockBelow); + const light = level.getRawBrightness(pos); + const lightMatch = light >= rule.minLight && light <= rule.maxLight; + const timeOfDay = level.dayTime % 24000; + const timeMatch = timeOfDay >= rule.timeRange[0] && timeOfDay <= rule.timeRange[1]; + + if (!(dimMatch && blockMatch && lightMatch && timeMatch)) { + event.cancel(); + } +}); + +EntityEvents.removeSpawn(event => { + event.remove('minecraft:overworld', 'minecraft:creeper'); + event.remove('minecraft:the_end', 'minecraft:enderman'); +}); GPT GARBAGE +*/ + +/* +@silytonta +Is there a way for me to make mobs spawn in a dimension/biome that they usually dont? + +@dob3a +yea, u can use "entity.block.biomeId" to get their current biome, and u can use "entity.level.name" to get their current dimension. + +sry for late reply i didnt see the notify*/ \ No newline at end of file diff --git a/1.20.1-FearFactoryTest/minecraft/mods/Vita_Craftis_1-2v_mc1-20-1_gecolib_needed.jar b/1.20.1-FearFactoryTest/minecraft/mods/Vita_Craftis_1-2v_mc1-20-1_gecolib_needed.jar deleted file mode 100644 index 3db7f67..0000000 --- a/1.20.1-FearFactoryTest/minecraft/mods/Vita_Craftis_1-2v_mc1-20-1_gecolib_needed.jar +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:132c0ceb119f366eb6af316cca1c4a9f67032688e57bbd9cdc539a4c6c865353 -size 540375 diff --git a/1.20.1-FearFactoryTest/minecraft/mods/Voidscape-1.20.1-1.5.389.jar b/1.20.1-FearFactoryTest/minecraft/mods/Voidscape-1.20.1-1.5.389.jar new file mode 100644 index 0000000..91bd1f6 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/mods/Voidscape-1.20.1-1.5.389.jar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c3eb2cc621c035460652f71ecaa80f54db1bc69f8440538f904baf46a96411a8 +size 1844868 diff --git a/1.20.1-FearFactoryTest/minecraft/mods/cosmeticarmorreworked-1.20.1-v1a.jar b/1.20.1-FearFactoryTest/minecraft/mods/cosmeticarmorreworked-1.20.1-v1a.jar new file mode 100644 index 0000000..edd7d06 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/mods/cosmeticarmorreworked-1.20.1-v1a.jar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c790e8671625b05ec0aa19272e0ea74ea95619f953e3c6f39a6736af0d386804 +size 88752 diff --git a/1.20.1-FearFactoryTest/minecraft/mods/cosmeticcorpsecompat-1.19.x-1.20.x-Forge-1.0.0.jar b/1.20.1-FearFactoryTest/minecraft/mods/cosmeticcorpsecompat-1.19.x-1.20.x-Forge-1.0.0.jar new file mode 100644 index 0000000..160c7c1 --- /dev/null +++ b/1.20.1-FearFactoryTest/minecraft/mods/cosmeticcorpsecompat-1.19.x-1.20.x-Forge-1.0.0.jar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5e0751bf804410d9709ec9145b4c9823105d91cca2993179799a0cb805a94d8e +size 8802 diff --git a/1.20.1-FearFactoryTest/minecraft/mods/cosmeticcorpsecompat-1.19.x-1.20.x-Forge-1.0.0.jar.disabled b/1.20.1-FearFactoryTest/minecraft/mods/cosmeticcorpsecompat-1.19.x-1.20.x-Forge-1.0.0.jar.disabled deleted file mode 100644 index 38a99cf11a98b00080a37b0930961870570ea53e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8802 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