skyrim-multiplayer / skymp

Multiplayer Mod & TypeScript SDK for Skyrim Special Edition
Other
221 stars 75 forks source link

[Bug]: IdMapper indexes in Combiner are incorrect. #586

Closed Keidran closed 2 years ago

Keidran commented 2 years ago

Severity

Major. A crucial error that indicates a deviation from business logic or disrupts the program, but doesn't have a vital impact on the app.

Priority

Medium. Anything that negatively affects the user experience.

Description

https://github.com/skyrim-multiplayer/skymp/blob/85dbed61c03e82f68cd2a7628d3510d15b6e8e51/skymp5-server/cpp/lib_espm/Combiner.cpp#L89

When tracing indexes in this place, when loading files, there is an abnormal behavior.

OS

Windows

OS version

10

Skyrim version

1.5.97.0.8

SKSE version

2.0.19

client commit''s hash

85dbed61c03e82f68cd2a7628d3510d15b6e8e51

server commit''s hash

85dbed61c03e82f68cd2a7628d3510d15b6e8e51

Videocard model

GTX 1080Ti

Steps to reproduce

Load .esm files

Expected result

Trace: i: 0 | m: 0 i: 1 | m: 1 i: 2 | m: 2 i: 3 | m: 3 i: 4 | m: 4 i: 5 | m: 5 ...

Actual result

Trace: i: 0 | m: 0 i: 1 | m: 1 i: 2 | m: 2 i: 3 | m: 2 i: 4 | m: 2 i: 5 | m: 5 ...

Pospelove commented 2 years ago

@nic11 @Dinakrab Is this issue valid?

Pospelove commented 2 years ago

@Keidran What is your load order?

Dinakrab commented 2 years ago

@nic11 @Dinakrab Is this issue valid?

I think it is

Keidran commented 2 years ago

@Keidran What is your load order?

"loadOrder": [ "Skyrim.esm", "Update.esm", "Dawnguard.esm", "HearthFires.esm", "Dragonborn.esm", "mod.esp" ]

Pospelove commented 2 years ago

@Keidran How to reproduce in the game? For example, spawn in location X, activate chest Y, etc.

Keidran commented 2 years ago

@Pospelove These indexes are assigned when the server is started.

Pospelove commented 2 years ago

@Keidran Players do not see IdMappings. Testers too. They see bugs in game and errors in the server console. So I hope you answer my question and reduce the time that will be spent by the dev team and QA. Otherwise, we will be able to pick this up once reproduce the bug on our own server (we do not use Solstheim currently, for example).

Cazexotono commented 2 years ago

@Pospelove All content related to the Hearthfire and Dragonborn DLC (Excluding Dawnguard) causes various problems, for example, world space in which you can stay but not interact with objects. This may be due to a different FormID assignment on the client and server.

Interaction in Solstame causes an error: Error: WorldSpace doesn't match: caster is in DLC2SolstheimWorld, target is in DLC1AurielsBow

This is old data from the local test server, which was obtained by creating a mod with portals to Solheim and other DLC locations.

Cazexotono commented 2 years ago

Here is the mod, the entrance is in Whiterun, Olavathe Feebles House CTR.zip

Pospelove commented 2 years ago

@Cazexotono Is it reproducible with the latest server?

Cazexotono commented 2 years ago

@Pospelove The bug manifests itself but in a slightly different way (This is most likely due to the method of penetration into Solstame or due to changes in new versions). We installed spawn in Solheim and began to enter the doors of the locations in Raven Rock. They teleported Dawnguard add-ons to certain locations.

Pospelove commented 2 years ago

@Cazexotono Thanks for telling me this. I hope you post another bug with steps-to-reproduce/expected-result/actual-result.