You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
api.lua's sign post conversion LBM crashes when encountering a "signs:sign_post" node with certain param2 values. Most likely any param2 value where param2 % 8 >= 4 will do it, but I only tested with 5.
Example output:
ERROR[Main]: ServerError: AsyncErr: Lua: Runtime error from mod 'signs_lib' in callback LuaLBM::trigger(): ...mt/bin/../games/dreambuilder_game/mods/signs_lib/api.lua:1242: attempt to index a nil value
ERROR[Main]: stack traceback:
ERROR[Main]: ...mt/bin/../games/dreambuilder_game/mods/signs_lib/api.lua:1242: in function 'func'
ERROR[Main]: /home/noah/mt/bin/../builtin/profiler/instrumentation.lua:124: in function 'action'
ERROR[Main]: /home/noah/mt/bin/../builtin/game/misc.lua:320: in function </home/noah/mt/bin/../builtin/game/misc.lua:304>
This was initially discovered because it was triggered by a corrupted map, but it is possible (but complex) to trigger it without corruption:
Using another mod, register signs:sign_post as a node, preferably with a paramtype2 value of facedir to make the next step easier.
Place a signs:sign_post node and set its param2 to 5. If paramtype2 is facedir then a screwdriver can probably be used for this.
Reload the mapblock (restarting the server works). The server will crash when the mapblock is loaded.
I suspect other methods of obtaining a signs:sign_post (some old now-removed mod that had it, an old version, or whatever) would have the same effect.
As a side note, does this LBM really need to use run_at_every_load = true? It seems like a textbook example of using false there.
The text was updated successfully, but these errors were encountered:
api.lua's sign post conversion LBM crashes when encountering a "signs:sign_post" node with certain param2 values. Most likely any param2 value where
param2 % 8 >= 4
will do it, but I only tested with 5.Example output:
This was initially discovered because it was triggered by a corrupted map, but it is possible (but complex) to trigger it without corruption:
signs:sign_post
as a node, preferably with a paramtype2 value offacedir
to make the next step easier.signs:sign_post
node and set its param2 to 5. If paramtype2 isfacedir
then a screwdriver can probably be used for this.I suspect other methods of obtaining a signs:sign_post (some old now-removed mod that had it, an old version, or whatever) would have the same effect.
As a side note, does this LBM really need to use
run_at_every_load = true
? It seems like a textbook example of usingfalse
there.The text was updated successfully, but these errors were encountered: