RE:NODE

Valheim ConfigurationManager (F1) მოდიან სერვერზე

ავტორი RE:NODE-ის გუნდი
10 წუთის საკითხავი


BepInEx ConfigurationManager კლიენტის მხარის მოდია, რომელიც ყველა დაყენებული plugin-ის პარამეტრს ფანჯარაში აჩვენებს, რომელსაც თამაშში ნაგულისხმევად F1-ით ხსნი. იქ მნიშვნელობის შეცვლა პირდაპირ იმ plugin-ის .cfg ფაილში იწერება შენს კომპიუტერზე. გამოყოფილ სერვერზე ხალხი სწორედ აქ ცდება: მენიუ კლიენტს ცვლის და არა სერვერს. გამონაკლისია პარამეტრები, რომლებსაც მოდი სერვერიდან ServerSync-ით ან Jotunn-ით სინქრონებს - სანამ დაკავშირებული ხარ, ისინი სერვერის მნიშვნელობებს აჩვენებს, მხოლოდ წასაკითხია, თუ სერვერის ადმინების სიაში არ ხარ, და ადმინის ცვლილება სერვერზე იგზავნება და იქ ინახება. სერვერზე ყველაფერი დანარჩენი, ისეთი მოდების ჩათვლით, რომლებიც მხოლოდ სერვერზე მუშაობს, სერვერის BepInEx/config საქაღალდის ფაილის რედაქტირებით იცვლება. თავად სერვერს ConfigurationManager არასდროს სჭირდება.

რა არის ConfigurationManager#

BepInEx თითოეული plugin-ის პარამეტრებს INI ფაილში ინახავს BepInEx/config-ის ქვეშ, რომელიც plugin-ის პირველი ჩატვირთვისას გენერირდება. ეს ფაილები წაკითხვადია, მაგრამ დამღლელი: დიდ მოდს ათეულ სექციაში ასამდე პარამეტრი შეიძლება ჰქონდეს და უმეტესი ცვლილების სანახავად თამაშიდან უნდა გახვიდე. ConfigurationManager იმავე პარამეტრებს მეხსიერებიდან კითხულობს და ფორმად აჩვენებს - გადამრთველები უჯრებად, რიცხვები სლაიდერებად ან ველებად, სიები ჩამოსაშლელებად, ღილაკების მინიჭება ღილაკად, რომელსაც დააჭერ და შემდეგ ახალ კლავიშს აჭერ.

ორიგინალი BepInEx-ისთვის ზოგადად დაწერა ManlyMarco-მ BepInEx-ის პროექტის ფარგლებში. Valheim-ის მოთამაშეები ძირითადად მის Valheim-ისთვის გადაკეთებულ ვერსიას აყენებენ Thunderstore-დან; ამ წერის დროს, ყველაზე ხშირად მოდების გვერდები Azumatt-ის "Official BepInEx ConfigurationManager"-ზე მიუთითებენ, და არსებობს fork-ებიც დამატებითი Valheim-ის სპეციფიკური ფუნქციებით. ყველა ერთსა და იმავე config სისტემას კითხულობს, ამიტომ ქვემოთ მოცემული ინსტრუქცია თითოეულზე მუშაობს; ფანჯრის ზუსტი განლაგება განსხვავდება.

დააყენე ისე, როგორც ნებისმიერი კლიენტის მოდი, მოდების მენეჯერით ან BepInEx/plugins-ში ჩადებით. BepInExPack-ის გარდა სხვა dependency არ აქვს.

გახსნა და პარამეტრის პოვნა#

დააჭირე F1-ს მთავარ მენიუში ან თამაშში. ფანჯარა ყველა plugin-ს, რომელსაც პარამეტრები აქვს, სახელით აჩვენებს ჩაკეცილად; სახელზე დააწკაპუნე გასაშლელად, ან ზედა საძიებო ველში აკრიფე, რომ ყველა plugin-ში ერთდროულად გაფილტრო.

კონტროლები, რომლებიც ცოდნის ღირსია:

კონტროლირას აკეთებს
Search boxპარამეტრებს სახელით ფილტრავს ყველა plugin-ში
Show settingsჩვეულებრივ პარამეტრებს ჩართავს ან გამორთავს
Show keyboard shortcutsღილაკების პარამეტრებს ჩართავს ან გამორთავს
Show advancedაჩვენებს პარამეტრებს, რომლებიც ავტორმა advanced-ად მონიშნა და ნაგულისხმევად დამალულია
Reset / default buttonერთ პარამეტრს უბრუნებს მოდის მიერ გამოცხადებულ ნაგულისხმევს

პარამეტრზე მაუსი მიიტანე, რომ ავტორის დაწერილი აღწერა ნახო - იგივე ტექსტი, რომელიც .cfg-ში გასაღების ზემოთაა. ცვლილებამდე წაიკითხე; ხშირად წერია, ცვლილებას გადატვირთვა სჭირდება თუ არა და პარამეტრი სერვერთან სინქრონიზებულია თუ არა.

თუ F1 სხვა მოდს ეჯახება ან რაღაცაზე გაქვს მინიჭებული, შეცვალე. ConfigurationManager-ს საკუთარი config ფაილი აქვს, ჩვეულებრივ BepInEx/config/com.bepis.bepinex.configurationmanager.cfg, ცხელი ღილაკით [General]-ის ქვეშ:

com.bepis.bepinex.configurationmanager.cfg
[General]## The shortcut used to toggle the config manager window on and off.# Setting type: KeyboardShortcut# Default value: F1Show config manager = F1

კლავიშის სახელი და სექცია დიდი ხანია სტაბილურია, მაგრამ fork-ებს შეიძლება რამე გადაერქვას. თუ შენი ფაილი განსხვავებულია, ცხელი ღილაკი მაინც ConfigurationManager-ის საკუთარ პარამეტრებშია, ამიტომ მისი შეცვლა თავად ფანჯრიდანაც შეგიძლია.

რას ცვლის თამაშში შეტანილი ცვლილება სინამდვილეში#

ფანჯარაში გაკეთებული ყოველი ცვლილება დაუყოვნებლივ დისკზე იწერება, plugin-ის .cfg-ში იმ მანქანაზე, რომელზეც თამაში მუშაობს. BepInEx config ფაილს ინახავს ყოველ ჯერზე, როცა მისი რომელიმე მნიშვნელობა დაყენდება, ამიტომ ცალკე შენახვის ნაბიჯი არ არსებობს.

ახალი მნიშვნელობა მაშინვე რამეს აკეთებს თუ არა, მოდზეა დამოკიდებული:

  • ცოცხლად გამოიყენება. ბევრი პარამეტრი ყოველ გამოყენებაზე იკითხება - HUD-ის პოზიცია, დაწყობის ზომის შემოწმება, ფერი. ისინი რედაქტირებისთანავე იცვლება.
  • გამოიყენება შემდეგ ჩატვირთვაზე. პარამეტრები, რომლებიც მოდის გაშვებისას იკითხება - ნივთების რეცეპტები, რეგისტრირებული ნაგებობები, არსებების განმარტებები - ინახება, მაგრამ ძალაში მხოლოდ თამაშის გადატვირთვის შემდეგ შედის. აღწერა ჩვეულებრივ ამას ამბობს.
  • გამოიყენება სამყაროში შემდეგ შესვლაზე. ზოგი პარამეტრი სამყაროში ჩატვირთვისას იკითხება, ამიტომ მთავარ მენიუში გასვლა და ხელახლა შესვლა საკმარისია.

თუ ცვლილება არაფერს აკეთებს, ჯერ შეამოწმე, ამ სამიდან რომელია, და არ დაასკვნა, რომ მოდმა უგულებელყო.

სერვერზე დაკავშირებისას: სინქრონიზებული, დაბლოკილი და ლოკალური პარამეტრები#

მოდიან გამოყოფილ სერვერზე შესვლა ცვლის იმას, რასაც ფანჯარა ნიშნავს. პარამეტრები სამ ჯგუფად იყოფა და ფანჯარა ყოველთვის გარკვევით არ ნიშნავს.

პარამეტრის სახეობაჩანს შენს F1-შივინ წყვეტს მნიშვნელობასმოთამაშის მიერ რედაქტირება
ლოკალური (არასინქრონიზებული)დიახშენმხოლოდ შენს თამაშს ცვლის
სინქრონიზებული, დაბლოკილიდიახ, სერვერის მნიშვნელობითსერვერიმხოლოდ წასაკითხი, თუ ადმინი არ ხარ
სინქრონიზებული, დაუბლოკავიდიახმოდზეა დამოკიდებულიგანსხვავდება; ნუ დაეყრდნობი
მხოლოდ სერვერის მოდიარა, ეს მოდი შენ არ გაქვსსერვერის ფაილიკლიენტიდან შეუძლებელია

ლოკალური პარამეტრები ზუსტად ისე იქცევა, როგორც ერთმოთამაშიან რეჟიმში. შენი HUD, ღილაკები და გრაფიკასთან დაკავშირებული მოდის პარამეტრები შენია და სერვერი მათ არასდროს ხედავს.

სინქრონიზებული პარამეტრები ისაა, რომლებსაც მოდი სერვერიდან ServerSync-ით ან Jotunn-ის admin-only სინქრონით აგზავნის. დაკავშირებისას ფანჯარა სერვერის მნიშვნელობას აჩვენებს. თუ მოდის Lock Configuration ჩართულია - ServerSync-ის მოდებისთვის ჩვეულებრივი ნაგულისხმევი - არა-ადმინი მათ ვერ ცვლის; მოდების უმეტესობა მათ გამორთულად ხატავს. გასვლისას შენი საკუთარი მნიშვნელობები ჩვეულებრივ ბრუნდება. მექანიზმსა და დაბლოკვას დეტალურად განმარტავს ServerSync და config-ის იძულება.

მხოლოდ სერვერის მოდები საერთოდ არ ჩანს. Discord bridge, backup მოდი ან სერვერის მხარის ადმინისტრატორული ინსტრუმენტი მხოლოდ სერვერზე მუშაობს, ამიტომ შენს კლიენტს აჩვენებელი plugin არ აქვს. ConfigurationManager ქსელში ვერ გადაწვდება, რომ მოდი, რომელიც არ გაქვს, მოარგოს.

ადმინები სერვერს F1-დან ცვლიან#

სერვერის adminlist.txt-ში მყოფ მოთამაშეებს ერთი დამატებითი შესაძლებლობა აქვთ: სინქრონიზებული პარამეტრებისთვის მათი ცვლილებები სერვერზე მიდის. თანმიმდევრობა:

  1. ადმინი დაკავშირებისას ფანჯარაში სინქრონიზებულ მნიშვნელობას ცვლის.
  2. მოდი ახალ მნიშვნელობას სერვერს უგზავნის, რომელიც გამგზავნს თავის ადმინების სიაში ამოწმებს.
  3. სერვერი მას იყენებს, თავის .cfg-ში წერს და ყველა დაკავშირებულ კლიენტს უგზავნის.

ეს მომუშავე სერვერის დაბალანსების ყველაზე სწრაფი გზაა - სესიის დროს მტრის დაზიანებას ან დროპის ალბათობას არეგულირებ და ყველა ცვლილებას მაშინვე ხედავს. მას თავისი ფასი აქვს. დადასტურება და გაუქმება არ არის, ამიტომ სლაიდერის შეცდომა ყველასთვის ძალაშია. ცვლილება სერვერის ფაილში ხვდება, ამიტომ გადატვირთვას გადაურჩება და არავის დაუწერია. და სერვერის ლოგს გარდა ისტორია არ არსებობს, რაც მოდების უმეტესობისთვის არაფერია.

ორი წესი ამას უსაფრთხოს ინარჩუნებს:

  • ადმინების სია მოკლე შეინახე. adminlist.txt-ში ყოველ ID-ს შეუძლია საკუთარი კომპიუტერიდან სინქრონიზებული ბალანსის პარამეტრების გადაწერა, ასევე kick და ban. სამი სიის ფაილი ფორმატებს ფარავს, crossplay სერვერებისთვის საჭირო პლატფორმის პრეფიქსიანი ID-ების ჩათვლით.
  • დარეგულირების სესიის შემდეგ სერვერის config საქაღალდე დააკოპირე. როცა ჯგუფი კმაყოფილია, ჩამოტვირთე BepInEx/config და backup-ებთან ერთად შეინახე. ეს არის ჩანაწერი იმისა, რაც შეიცვალა.

თუ ადმინის ცვლილებები არაფერს აკეთებს, ჩვეულებრივი მიზეზებია ადმინის ID-ის არარსებობა ან არასწორი ფორმატი, მოდი, რომელიც ადმინის რედაქტირებას არ უჭერს მხარს (ზოგი მნიშვნელობებს მხოლოდ ფაილიდან სინქრონებს), ან პარამეტრი საერთოდ არ არის სინქრონიზებული - ამ შემთხვევაში ცვლილებამ მხოლოდ ადმინის თამაში შეცვალა და სხვისი - არა.

ფაილის რედაქტირება ამის ნაცვლად#

ყველაფრისთვის სერვერზე, რაც სინქრონიზებული პარამეტრი არ არის, და ნებისმიერი ცვლილებისთვის, რომლის გაკეთებაც ცოცხლად კი არა, განზრახ გინდა, ფაილი შეცვალე. მხოლოდ სერვერის მოდებისთვის ეს ერთადერთი ვარიანტიცაა.

  1. სერვერი სუფთად გააჩერე და სამყაროს შენახვა დაუცადე.
  2. სერვერზე გახსენი BepInEx/config/<plugin GUID>.cfg.
  3. =-ის შემდეგ მნიშვნელობა შეცვალე. გასაღების სახელი, სექცია და ფორმატი ზუსტად ისე დატოვე, როგორც წერია.
  4. გაუშვი სერვერი და მისი კონსოლი მოდის Loading ხაზზე შეამოწმე.

წინასწარ გაჩერება უფრო მნიშვნელოვანია, ვიდრე ჩანს. BepInEx თითოეულ config-ს მეხსიერებაში ინახავს და მთელ ფაილს თავიდან წერს, როცა მნიშვნელობა დაყენდება ან მოდი ინახავს. თუ მომუშავე სერვერის ფაილს შეცვლი და შემდეგ სერვერზე რაღაც მნიშვნელობას დააყენებს - ადმინის F1 ცვლილება, მოდი თავის მდგომარეობას ინახავს - მეხსიერებაში არსებული ასლი შენს ცვლილებას გადააწერს. ზოგი მოდი საკუთარ ფაილს აკვირდება და შენახვისას თავიდან კითხულობს, რის გამოც ამ მოდისთვის მომუშავეზე რედაქტირება უსაფრთხოა; თუ მოდი სხვას არ ამბობს, ივარაუდე, რომ არ აკეთებს.

იგივე ეხება შენს საკუთარ კომპიუტერს. .cfg-ის ტექსტურ რედაქტორში შეცვლა, სანამ თამაში მუშაობს, და შემდეგ ამ მოდის F1-ში შეხება ჩუმად შეიძლება შენს ტექსტურ ცვლილებას გააქროს. სესიაში ერთ-ერთი გამოიყენე.

მოდების მენეჯერები მესამე გზას გვთავაზობენ. r2modman და Gale ორივეს აქვს config რედაქტორი, რომელიც პროფილის ფაილებს საქაღალდის ძებნის გარეშე ხსნის, რაც კლიენტის პარამეტრებისთვის მოსახერხებელია და სერვერისთვის უსარგებლო, რადგან მისი ფაილები სერვერზეა. RE:NODE-ზე სერვერის BepInEx/config პანელის ფაილების მენეჯერშია, რომელიც .cfg ფაილებს ბრაუზერში სინტაქსის გამოკვეთით ცვლის, ამიტომ გაჩერება-რედაქტირება-გაშვების ციკლს ჩამოტვირთვა არ სჭირდება.

მაგალითი: სერვერის დარეგულირება ჯგუფისთვის#

ექვსკაციან ჯგუფს უნდა უფრო გულუხვი ტვირთის წონა და უფრო ნელი მოსავლის ტაიმერი, ერთი ServerSync მოდითა და ერთი Jotunn კონტენტ-მოდით. სუფთა გზა:

  1. საბაზისო მნიშვნელობები ფაილებში დააყენე. გაჩერებულ სერვერზე ორივე მოდის .cfg შეცვალე შეთანხმებულ მნიშვნელობებზე. ServerSync მოდში დაადასტურე Lock Configuration = On.
  2. გაუშვი და შეამოწმე. შედი ჩვეულებრივი მოთამაშის სახით, გახსენი F1 და დაადასტურე, რომ სინქრონიზებული პარამეტრები სერვერის მნიშვნელობებს აჩვენებს და გამორთულია. თუ რედაქტირებადია, ან ადმინი ხარ, ან დაბლოკვა გამორთულია.
  3. საჭიროების შემთხვევაში ცოცხლად დაარეგულირე. პირველ სესიაში, სანამ ჯგუფი თამაშობს, ერთი ადმინი F1-ში მნიშვნელობებს არეგულირებს. ყველა ცვლილებას ერთდროულად ხედავს.
  4. დააფიქსირე. სესიის შემდეგ ჩამოტვირთე სერვერის BepInEx/config და სამყაროს backup-თან ერთად შეინახე. ცვლილებები ჯგუფის მოდების სიაში აღნიშნე.
  5. საჭიროების შემთხვევაში კლიენტის ნაგულისხმევები გაავრცელე. ლოკალური პარამეტრები, რომლებიც უნდა ემთხვეოდეს - მაგალითად, საერთო რუკის ნიშნულების განლაგება - კლიენტის მხარეს ხვდება ექსპორტირებული პროფილით ან modpack config საქაღალდით.

გავრცელებული შეცდომა საპირისპიროა: თითოეული მოთამაშე თავის F1-ს ცვლის, სერვერზე არაფერია დაყენებული და ჯგუფი კვირების შემდეგ აღმოაჩენს, რომ პარამეტრების მხოლოდ ნახევარი სინქრონდებოდა.

პრობლემების გადაჭრა#

F1 არაფერს აკეთებს. მოდი არ ჩატვირთულა ან კლავიში სხვა მოდმა აიღო. შეამოწმე შენი კლიენტის BepInEx/LogOutput.log Loading ხაზზე, რომელიც ConfigurationManager-ს ასახელებს; თუ არის, ცხელი ღილაკი მისსავე config-ში შეცვალე.

მოდის პარამეტრები სიაში არ არის. მოდს პარამეტრები არ აქვს, საკუთარ ცალკე ფაილს იყენებს, მაგალითად YAML-ს, ან შენს კლიენტზე დაყენებული არ არის. მოდები, რომლებიც კონფიგურაციას YAML-ში ინახავენ, F1-ში ხშირად მხოლოდ რამდენიმე გადამრთველს აჩვენებენ.

პარამეტრები გამორთულია. ისინი სინქრონიზებული და სერვერის მიერ დაბლოკილია და შენ ადმინი არ ხარ. სთხოვე ადმინს ან სერვერის ფაილი შეცვალე.

ჩემი ცვლილება სერვერზე შესვლისას გადაწერა. პარამეტრი სინქრონიზებულია და სერვერის მნიშვნელობამ სესიისთვის შენსას ჩაანაცვლა.

ადმინის F1 ცვლილება გადატვირთვის შემდეგ დაბრუნდა. მოდმა ის მეხსიერებაში გამოიყენა, მაგრამ ადმინის რედაქტირებას არ ინახავს, ან სერვერის ფაილი backup-იდან ან deploy-ით ჩანაცვლდა. მნიშვნელობა სერვერის ფაილში დააყენე.

ფანჯარა ეკრანს ფარავს ან ტექსტი პატარაა. fork-ები განსხვავდებიან; უმეტესს ფანჯრის ზომის ან შრიფტის მასშტაბის პარამეტრები საკუთარ config სექციაში აქვს. ფანჯარაში ConfigurationManager-ის ქვეშ ნახე.

რაც მოდის ჩატვირთვის შეცდომას ჰგავს და არა პარამეტრის გამოუყენებლობას, ლოგით დაიწყე - BepInEx-ის ლოგების კითხვა ამას ეტაპობრივად გადის.

FAQ#

მჭირდება ConfigurationManager სერვერზე?

არა. გამოყოფილ სერვერს ეკრანი და შეყვანა არ აქვს, ამიტომ ფანჯრის დასახატად არაფერია. დააყენე მხოლოდ კლიენტებზე. ადმინები სინქრონიზებულ პარამეტრებს საკუთარი კლიენტიდან ცვლიან, სერვერზე ყველაფერი დანარჩენი კი სერვერის ფაილებში იცვლება.

არის ConfigurationManager თაღლითობა, თუ სხვა მოთამაშეებს არ აქვთ?

არა. ის მხოლოდ იმ პარამეტრებს ცვლის, რომლებიც შენს კლიენტს უკვე აქვს. სინქრონიზებულ, დაბლოკილ პარამეტრებზე ის სერვერს ვერ გადაფარავს, ლოკალურ პარამეტრებზე კი ნებისმიერს შეეძლო იგივე ცვლილება ტექსტურ რედაქტორში გაეკეთებინა.

რატომ ვერ ვპოულობ პარამეტრს, რომელზეც სერვერის მფლობელმა მითხრა?

ან ის მოდს ეკუთვნის, რომელიც მხოლოდ სერვერზე მუშაობს და შენს ფანჯარაში არასდროს ჩნდება, ან Show advanced-ის უკანაა დამალული. სცადე საძიებო ველი advanced პარამეტრების ჩვენებით.

ვრცელდება თამაშში შეტანილი ცვლილებები სერვერის ყველა მოთამაშეზე?

მხოლოდ თუ პარამეტრი სინქრონიზებულია და ცვლილების შემტანი სერვერის ადმინების სიაშია. F1-ში ყოველი სხვა ცვლილება მხოლოდ იმ მოთამაშის თამაშზე მოქმედებს.

შეიძლება config-ის რედაქტირება მთავარი მენიუდან?

დიახ. ფანჯარა მთავარ მენიუშიც იხსნება და თამაშშიც. პარამეტრები, რომლებიც გაშვებისას იკითხება, ძალაში მხოლოდ თამაშის გადატვირთვის შემდეგ შედის, სადაც არ უნდა შეცვალო.