NoctTeam-ValheimQuickWarp icon

ValheimQuickWarp

Experimental paired stone teleport pads. Automatic activation, 30 metre range. Required on server and all clients. Visuals and crafting are unfinished.

Last updated 3 weeks ago
Total downloads 12
Total rating 0 
Categories Transportation AI Generated
Dependency string NoctTeam-ValheimQuickWarp-0.1.0
Dependants 0 other packages depend on this package

This mod requires the following mods to function

denikson-BepInExPack_Valheim-5.4.2351 icon
denikson-BepInExPack_Valheim

BepInEx pack for Valheim. Preconfigured with the correct entry point for mods and preferred defaults for the community.

Preferred version: 5.4.2351
ValheimModding-Jotunn-2.30.2 icon
ValheimModding-Jotunn

Jötunn (/ˈjɔːtʊn/, 'giant'), the Valheim Library was created with the goal of making the lives of mod developers easier. It enables you to create mods for Valheim using an abstracted API so you can focus on the actual content creation.

Preferred version: 2.30.2

README

Valheim Quick Warp — prototyp 0.1.0

Pozioma płyta z vanilla stone_floor_2x2, dostępna pod młotkiem przy kamieniarzu. Koszt: 6 kamieni i 2 oczy szarła. Wejście na płytę przenosi gracza na środek drugiej płyty o identycznej nazwie. Maksymalny dystans to 30 m w przestrzeni 3D. Mod wymagany na serwerze i wszystkich klientach; Jötunn sprawdza zgodność wersji moda.

Stan wydania

To prototyp do testów na kopii świata, nie zweryfikowane wydanie produkcyjne. Plik VALIDATION.md opisuje rzeczywiście wykonane kontrole. Sprawdzenie bibliotek lub udana kompilacja nie potwierdzają działania fizyki, renderowania i multiplayera w Valheim. Gra nie została tutaj uruchomiona.

Wymagania i budowanie na Windows 11

  • Valheim w wersji odpowiadającej bibliotekom użytym do budowania.
  • BepInExPack Valheim 5.4.2351.
  • Jötunn 2.30.2.
  • .NET SDK 8 x64, tylko na komputerze budującym. Unity Editor nie jest potrzebny.

Zainstaluj zależności przez używany menedżer modów albo ręcznie. W menedżerze modów BepInEx może znajdować się w katalogu profilu, a nie gry. W takim przypadku użyj polecenia dotnet build poniżej i wskaż profil przez BepCore oraz JotunnPath.

Rozpakuj źródła, otwórz PowerShell w folderze projektu i wykonaj, podając własną ścieżkę:

powershell -NoProfile -ExecutionPolicy Bypass -File .\build.ps1 -ValheimDir 'C:\Program Files (x86)\Steam\steamapps\common\Valheim'

Skrypt szuka Jotunn.dll w BepInEx\plugins. Można wskazać go przez dodatkowy argument -JotunnPath 'D:\profil\BepInEx\plugins\Jotunn\Jotunn.dll'.

Dla instalacji przez menedżer modów lub kompilacji z bibliotek serwera:

dotnet build .\ValheimQuickWarp.csproj -c Release '-p:GameManaged=C:\gry\Valheim\valheim_Data\Managed' '-p:BepCore=D:\profil\BepInEx\core' '-p:JotunnPath=D:\profil\BepInEx\plugins\Jotunn\Jotunn.dll'

Instalacja i użycie

  1. Zatrzymaj serwer i wykonaj kopię zapasową świata.
  2. Skopiuj ValheimQuickWarp.dll do BepInEx\plugins\ValheimQuickWarp na serwerze i u wszystkich graczy. Nie kopiuj bibliotek Unity ani assembly_valheim do plugins.
  3. Uruchom serwer i grę przez BepInEx. W logu powinien pojawić się wpis Quick Warp 0.1.0.
  4. Zbuduj dwie płyty na tym samym poziomie albo różnych piętrach, w odległości do 30 m.
  5. Naciśnij E na każdej i wpisz tę samą nazwę, np. wieza. Wielkość liter ma znaczenie. Puste nazwy wyłączają połączenie.
  6. Zejdź z płyty i ponownie na nią wejdź. Po przybyciu możesz na niej stać i podskakiwać bez odsyłania z powrotem. Aby wrócić, zejdź poza jej obrys i wejdź ponownie.

Serwer sprawdza nazwę w całym zapisanym świecie. Trzecia płyta z tą samą nazwą blokuje taką grupę, nawet jeśli znajduje się daleko. Po postawieniu lub zniszczeniu płyty aktualizacja listy może potrwać kilka sekund; na bardzo dużym świecie dłużej. Płyty muszą być poziome. Mod nie transportuje wozów, łodzi, zwierząt ani innych graczy.

Grafika run

Podstawa, materiał, kolizja i ikona pochodzą ze Stone floor 2x2. Mod próbuje pozyskać osobny, płaski mesh run z dostępnych prefabów Vegvisira, bez kopiowania jego skryptów i kamienia. Nie zweryfikowano struktury assetów w uruchomionej grze. Jeśli odpowiedni mesh nie jest dostępny lub czytelny, używany jest proceduralny okrąg z 16 znakami inspirowanymi runami i materiałem gry. Nie jest to gwarantowana, dokładna kopia wzoru Vegvisira. Wybrany wariant jest zapisany w logu BepInEx. Wariant proceduralny nie wymaga tekstur ani AssetBundle.

Przemieszczenie i ograniczenia

Mod nie wywołuje Player.TeleportTo i nie włącza standardowego stanu teleportowania. Po odpowiedzi serwera klient lokalnie przestawia własną postać, zeruje prędkość i stan upadku oraz aktualizuje pozycję sieciową. Zachowuje obrót i kierunek patrzenia. Pojawienie się otoczenia celu musi być już zakończone; w przeciwnym razie relokacja jest wstrzymana zamiast wymuszać ładowanie. Sprawdza podłoże, miejsce dla kapsuły gracza i ochronę wardów.

Brak ekranu ładowania wynika z obranej ścieżki kodu, lecz płynność kamery, interpolacja Rigidbody, obsługa innych modów i zachowanie z opóźnieniem sieciowym wymagają testów w grze. Nie dodano specjalnych efektów teleportacji, własnego GUI ani konfiguracji zasięgu. Przedmioty są przenoszone wraz z graczem bez stosowania ograniczeń zwykłych portali; 30 m ma służyć lokalnemu przemieszczaniu.

Interakcja edycji nazwy używa kontroli dostępu klienta i RPC właściciela obiektu podobnie do zwykłych interakcji tekstowych gry. Ten prototyp nie stanowi zabezpieczenia przed zmodyfikowanym, złośliwym klientem. Nie zmienia zachowania istniejących podłóg ani portali.

Testy akceptacyjne na kopii świata

  • Dwie płyty 5 m i 29 m od siebie: przejście w obu kierunkach, bez ekranu ładowania.
  • Dystans powyżej 30 m, także pionowo: odmowa przejścia.
  • Stanie na celu przez 10 sekund i skoki pionowe: brak powrotu. Zejście i ponowne wejście: powrót.
  • Przejście obok i pod płytą, stanie na innym piętrze nad nią: brak aktywacji.
  • Nad celem postaw belkę, ścianę lub innego gracza: odmowa; po usunięciu przeszkody przejście.
  • Nazwa tylko na jednej płycie i na trzech płytach (trzecia daleko): odmowa.
  • Zniszczenie celu, ponowne zbudowanie, restart serwera: poprawna aktualizacja par.
  • Brak uprawnień do wardu przy celu: odmowa.
  • Zjazd z dużej wysokości: po relokacji brak odziedziczonych obrażeń od upadku.
  • Dwie osoby używające płyt jednocześnie; jedna obserwuje drugą: poprawna synchronizacja i brak zapętlenia.
  • Krawędź strefy świata: czekanie na załadowanie celu, brak upadku pod mapę.
  • Nowy gracz, odrodzenie i powrót po zwykłym portalu: brak odziedziczonej blokady płyty.
  • Obejrzyj położenie, widoczność i świecenie run; sprawdź wpis wybranego wariantu w logu.

Jeżeli wystąpi błąd, zachowaj BepInEx\LogOutput.log z klienta i serwera, opis układu płyt oraz listę innych modów.

Usunięcie moda

Usuń wszystkie jego płyty i zapisz świat przed usunięciem DLL. Świat z własnymi prefabami wymaga moda do poprawnego odtworzenia tych obiektów. Przywrócenie kopii świata jest najpewniejszym sposobem cofnięcia testu.