Creators-of-Create / Create

[Forge Mod] Building Tools and Aesthetic Technology
MIT License
2.85k stars 897 forks source link

Running `setSchedule({})` on a station bricks the entire world #5818

Closed Brainstorm4266 closed 4 months ago

Brainstorm4266 commented 10 months ago

Describe the Bug

When I ran, in ComputerCraft, setSchedule({}) (well, I tried to remove the schedule), the dedicated server crashed. When I tried to restart the server, it crashed again. And again. Aaaaand again.

Reproduction Steps

  1. Place a station.
  2. Connect a ComputerCraft: Tweaked computer to it. (Place one next to it).
  3. Mount it as a peripheral using peripheral.wrap
  4. Make sure a train is at the station.
  5. Run station.setSchedule({})

Expected Result

Honestly, I either expected it to error, or for the schedule to be removed.

Screenshots and Videos

image

Crash Report or Log

https://pastebin.com/xymTL8Wk

Operating System

GNU/Linux (Server is on Debian, client is on Arch)

Mod Version

0.5.1f

Minecraft Version

1.20.1

Forge Version

NeoForge 47.1.79

Other Mods

[1.20.1] SecurityCraft v1.9.8.jar aether-1.20.1-1.0.0-beta.1.3-neoforge.jar alexsmobs-1.22.6.jar appleskin-forge-mc1.20.1-2.5.1.jar appliedenergistics2-forge-15.0.13.jar architectury-9.1.12-forge.jar athena-forge-1.20.1-3.1.1.jar balm-forge-1.20.1-7.1.4.jar BetterAnimationsCollection-v8.0.0-1.20.1-Forge.jar betterfpsdist-1.20.1-3.9.jar bettervillage-forge-1.20.1-3.2.0.jar BiomesOPlenty-1.20.1-18.0.0.592.jar Bookshelf-Forge-1.20.1-20.0.5.jar botarium-forge-1.20.1-2.2.0.jar Bountiful-6.0.3+1.20.1-forge.jar callablehorses-1.20.1-1.3.0.1.jar canary-mc1.20.1-0.2.7.jar cc-tweaked-1.20.1-forge-1.108.3.jar chipped-forge-1.20.1-3.0.1.jar chisels-and-bits-forge-1.4.145.jar chunkloaders-1.2.7-forge-mc1.20.jar.disabled citadel-2.4.5-1.20.1.jar cloth-config-12.0.109-forge.jar Clumps-forge-1.20.1-12.0.0.3.jar collective-1.20.1-6.66.jar comforts-forge-6.3.3+1.20.1.jar connectedglass-1.1.8-forge-mc1.20.1.jar Controlling-forge-1.20.1-12.0.2.jar cookingforblockheads-forge-1.20-16.0.1.jar corpse-1.20.1-1.0.5.jar craftingtweaks-forge-1.20-18.2.1.jar create-1.20.1-0.5.1.f.jar createaddition-1.20.1-1.1.1.jar createbb-1.20.1-3.1.1.jar createchunkloading-1.6.0-forge.jar create-confectionery1.20.1_v1.0.9.jar create_enchantment_industry-1.20.1-for-create-0.5.1.e-1.2.7.c.jar create_jetpack-forge-4.1.1.jar create_mechanical_spawner-1.20.1-0.0.14.e-22.jar create_misc_andthings 1.20.1_4.0A.jar create-new-age-forge-1.20.1-1.0.1b.jar create_recycle_1.0.2_forge_1.20.1.jar create-structures-0.1.1-1.20.1-FORGE.jar create-stuff-additions1.20.1_v2.0.4a.jar Create Sweets And Treats 1.1.jar cupboard-1.20.1-2.1.jar curios-forge-5.3.5+1.20.1.jar dynamiclightsreforged-1.20.1_v1.6.0.jar EffectTooltips-Forge-1.20.1-9.0.2.jar embeddium-0.2.2+mc1.20.1.jar EnchantmentDescriptions-Forge-1.20.1-17.0.8.jar entityculling-forge-1.6.2-mc1.20.1.jar FarmersDelight-1.20.1-1.2.3.jar FastLeafDecay-31.jar ferritecore-6.0.0-forge.jar FluxNetworks-1.20.1-7.2.0.14.jar fogoverrides-1.20.1-1.3.jar foodeffecttooltips-1.0.1+forge-1.20.jar.jar FramedBlocks-9.1.6.jar freecam-forge-1.2.1+1.20.jar ftb-chunks-forge-2001.2.2.jar ftb-library-forge-2001.1.3.jar ftb-quests-forge-2001.1.6.jar ftb-ranks-forge-2001.1.3.jar ftb-teams-forge-2001.1.4.jar ftb-xmod-compat-forge-2.0.1.jar fusion-1.0.6-forge-mc1.20.1.jar gamemenumodoption-mc1.20.1-2.2.1.jar guardvillagers-1.20-1.6.2.jar ImmediatelyFast-1.2.6+1.20.2.jar immersive_aircraft-0.6.2+1.20.1-forge.jar immersive_paintings-0.6.7+1.20.1-forge.jar interiors-0.3.1-1.20.x.jar inventorysorter-1.20.1-23.0.1.jar item-filters-forge-2001.1.0-build.55.jar Jade-1.20.1-forge-11.6.1.jar JadeAddons-1.20.1-forge-5.2.0.jar.disabled jei-1.20.1-forge-15.2.0.27.jar JustEnoughProfessions-forge-1.20.1-3.0.1.jar JustEnoughResources-1.20.1-1.4.0.238.jar Kambrik-6.1.1+1.20.1-forge.jar konkrete_forge_1.6.1-2_MC_1.20.jar kotlinforforge-4.4.0-all.jar libraryferret-forge-1.20.1-4.0.0.jar lootr-1.20-0.7.30.73.jar mcw-bridges-2.1.1-mc1.20.1forge.jar mcw-doors-1.1.0forge-mc1.20.1.jar mcw-fences-1.0.7-mc1.20.1forge.jar mcw-trapdoors-1.1.1-mc1.20.1forge.jar Mekanism-1.20.1-10.4.0.14.jar MekanismAdditions-1.20.1-10.4.0.14.jar MekanismGenerators-1.20.1-10.4.0.14.jar MekanismTools-1.20.1-10.4.0.14.jar modernfix-forge-5.8.1+mc1.20.1.jar MouseTweaks-forge-mc1.20-2.25.jar NaturesCompass-1.20.1-1.11.2-forge.jar NoChatReports-FABRIC-1.20.1-v2.2.2.jar notenoughanimations-forge-1.6.4-mc1.20.jar okzoomer-forge-1.20-3.0.1.jar polymorph-forge-0.49.0+1.20.1.jar PuzzlesLib-v8.0.24-1.20.1-Forge.jar rechiseled-1.1.4a-forge-mc1.20.jar rechiseledcreate-1.0.1-forge-mc1.20.jar resourcefullib-forge-1.20.1-2.1.11.jar Searchables-forge-1.20.1-1.0.2.jar sliceanddice-forge-3.2.0.jar sophisticatedbackpacks-1.20.1-3.18.59.909.jar sophisticatedcore-1.20.1-0.5.89.425.jar soundphysics-forge-1.20.1-1.2.1.jar Steam_Rails-1.5.3+forge-mc1.20.1.jar storagedrawers-1.20.1-12.0.2.jar StrawStatues-v8.0.1-1.20.1-Forge.jar supermartijn642configlib-1.1.8-forge-mc1.20.jar supermartijn642corelib-1.1.15-forge-mc1.20.jar TerraBlender-forge-1.20.1-3.0.0.169.jar villagernames-1.20.1-5.2.jar worldedit-mod-7.2.15.jar XaeroPlus-Forge-1.20.1-43-WM1.34.1-MM23.8.2.jar Xaeros_Minimap_23.8.2_Forge_1.20.jar XaerosWorldMap_1.34.1_Forge_1.20.jar

Additional Context

No response

Brainstorm4266 commented 10 months ago

Looking at the error, it's possible that in the class com.simibubi.create.content.trains.schedule.ScheduleRuntime.handler method startCustomInstruction, the mod is trying to get a nonexistent index from the schedule, resulting in a crash (specifically at ScheduleRuntime.java:1055).

vaaski commented 9 months ago

I can confirm this, for anyone trying to rescue their world, I "fixed" it by removing the data/create_tracks.dat file in the world folder. I think this will remove all trains and the tracks need to be updated.

jojotastic777 commented 9 months ago

The same crash happens when you do station.setSchedule({ cyclic = false, entries = {} }) instead of just station.setSchedule({}).

Shibva commented 9 months ago

my 2 cents are that the method being reference is not properly accounting for the size of the array; in jojo's case, its when the list is empty and creates and out-of-bounds error. The method itself is not being handled correctly or has any sort of "failsafe" to prevent this crash from happening when the set or get of the sqedule is an empty array

marcin212 commented 8 months ago

To fix your world, you can use NBTExplorer to remove the schedule from the train from the data/create_tracks.dat file: obraz I fixed my game save this way.

ThatMightyGuy commented 4 months ago

I'm getting the same behavior on 1.20.1 when setting the schedule to throttle with a delay condition.

IThundxr commented 4 months ago

Fixed in Steam 'n' Rails 1.6.4