This is a mobile optimized page that loads fast, if you want to load the real page, click this text.

System.NullReferenceException при инициализации скрипта

trueINKIE

Новый участник
4 Авг 2025
8
0
3
Всем привет! Есть проблема с билдом скрипта (я так думаю, не точно) Сбилженный скрипт (С#) не запускается)

Как я понимаю, что он всё же либо не может найти dll файл, либо что-то другое, тогда не ясно что является null.
Также заметил, что вместе с билдом dll в выходную директорию падают dll-ки и файлы Bootstrapper, мне кажется это не совсем корректным, подскажите, где накосячил, пожалуйста) IDE JB Rider

Код:
[INFO] Loading NodeJS packages...
[INFO] Starting packages...
[DONE] Server packages have been started.
Initializing Bootstrapper.dll (1.1.0.0)..
-> SERVER STARTED AT 06.08.2025 19:43:24
Unable to load acl.xml
ACLEnabled: False
Loaded 667 entries from vehicleData.json
Loading resources..
-> Starting Server resource..
Server: loading scripts.. found 1 script(s)
Object reference not set to an instance of an object.
-> Error starting 'Server'
System.NullReferenceException: Object reference not set to an instance of an object.
   at bool GTANetworkInternals.GameServer.StartResource(string resourceName, string parent)

Started! Waiting for connections..
[DONE] Started resource transfer server at 22006 port.
[DONE] Client-side packages weight: 0.000000 MB (uncompressed: 0.000000 MB).
[INFO] Initializing networking...
[DONE] Networking has been started: (IPv4-only) at 127.0.0.1:22005
[DONE] The server is ready to accept connections.

XML:
<meta>
    <info name="Server" description="Server side mode" />
    
    <script scr="netcoreapp3.1\Server.dll"/>
</meta>

XML:
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <acl_enabled>true</acl_enabled>
  <log_console>true</log_console>
  <log_chat>true</log_chat>
  <resource src="Server"/>
</config>

JSON:
{
    "maxplayers" : 100,
    "name" : "RAGE:MP Unofficial server", 
    "gamemode" : "freeroam", 
    "stream-distance" : 300.0,
    "announce" : false,
    "csharp" : "enabled",
    "port": 22005
}

C#:
using System;
using GTANetworkAPI;

namespace Server
{
public class Test : Script
    {
[ServerEvent(Event.ResourceStart)]
public void Te1st()
        {
NAPI.Util.ConsoleOutput("123");
        }
    }
}

 

Jerry (ChatGPT)

AI-powered language model
VIP
helper
17 Окт 2023
2,487
239
100
Похоже, что у вас проблема с инстанцированием объекта в методе StartResource() класса GameServer. Проверьте ваш код и убедитесь, что все необходимые объекты и переменные инициализированы корректно, чтобы избежать возникновения System.NullReferenceException. Также удостоверьтесь, что пути к вашим dll-файлам указаны правильно в meta.xml.
 

trueINKIE

Новый участник
4 Авг 2025
8
0
3
Попробуй вручную продублировать Server.dll в папке runtime (\dotnet\runtime), заработает ли

Это действительно исправило проблему с инициализацией, но пропало уведомление о загрузки модуля. Но всё также я не увидел тестового уведомление.

Код:
[INFO] Starting RAGE Multiplayer server...

[============================================================]
||
||      MaxPlayers              100
||      Sync rate               40ms
||      Name                    RAGE:MP Unofficial server
||      Gamemode                freeroam
||      Streaming distance      300
||      Announcement            disabled
||      Voice chat              disabled
||      Address                 127.0.0.1:22005
||      Connection limits       disabled
||      Encryption              enabled
||      NodeJS                  enabled
||      C#                      enabled
||
[============================================================]


[INFO] Loading NodeJS packages...
[INFO] Starting packages...
[DONE] Server packages have been started.
Multiple dependency manifest (*.deps.json) files exist in the Bridge application directory (D:\Games\RAGEMP\server-files\dotnet\runtime\).
[DONE] Started resource transfer server at 22006 port.
[DONE] Client-side packages weight: 0.000000 MB (uncompressed: 0.000000 MB).
[INFO] Initializing networking...
[DONE] Networking has been started: (IPv4-only) at 127.0.0.1:22005
[DONE] The server is ready to accept connections.


UPD: Нет, я просто скопировал все файлы (вместе с зависимостью), что и вызвало ошибку мульти манифеста. После его удаления (остался лишь dll файл) ошибка вернулась:
Код:
[INFO] Starting RAGE Multiplayer server...

[============================================================]
||
||      MaxPlayers              100
||      Sync rate               40ms
||      Name                    RAGE:MP Unofficial server
||      Gamemode                freeroam
||      Streaming distance      300
||      Announcement            disabled
||      Voice chat              disabled
||      Address                 127.0.0.1:22005
||      Connection limits       disabled
||      Encryption              enabled
||      NodeJS                  enabled
||      C#                      enabled
||
[============================================================]


[INFO] Loading NodeJS packages...
[INFO] Starting packages...
[DONE] Server packages have been started.
Initializing Bootstrapper.dll (1.1.0.0)..
-> SERVER STARTED AT 07.08.2025 11:07:27
Unable to load acl.xml
ACLEnabled: False
Loaded 667 entries from vehicleData.json
Loading resources..
-> Starting Server resource..
Server: loading scripts.. found 1 script(s)
Object reference not set to an instance of an object.
-> Error starting 'Server'
System.NullReferenceException: Object reference not set to an instance of an object.
   at bool GTANetworkInternals.GameServer.StartResource(string resourceName, string parent)

Started! Waiting for connections..
[DONE] Started resource transfer server at 22006 port.
[DONE] Client-side packages weight: 0.000000 MB (uncompressed: 0.000000 MB).
[INFO] Initializing networking...
[DONE] Networking has been started: (IPv4-only) at 127.0.0.1:22005
[DONE] The server is ready to accept connections.


UPD 2 : По поводу выходной директории, я забыл, что JB Rider по дефолту копирует референс в выходную папку, убрал галочку, более не копирует. А нужно ли мне подтягивать в случае рейджа зависимость бутсрапера в выходную директорию?
 

DaVilka

Старожил
BackEnd developer
16 Сен 2020
777
286
128
Нет, но если ты будеш нугеты устанавливать там тож надо будет заморочится, я в постбилд закинул скрипт который в runtime копирует дллки из папки билда, сам билд подтягивает в себя нужные дллки
Код:
copy /Y "$(ProjectDir)..\build\Debug\netcoreapp3.1\*.dll" "$(SolutionDir)../../runtime"
copy /Y "$(ProjectDir)..\build\Debug\netcoreapp3.1\$(MSBuildProjectName).dll" "$(SolutionDir)../build"
RD /S /Q "$(SolutionDir)../build/Debug"
 
Реакции: trueINKIE

trueINKIE

Новый участник
4 Авг 2025
8
0
3
Отлично, так и сделаю, но пока не ясно, что делать с основной проблемой. За nuget спасибо, буду знать как правильно их загружать)
 

DaVilka

Старожил
BackEnd developer
16 Сен 2020
777
286
128
в папке build лежит мета и длл сервера, сетингс указывает на папку билд
 

DaVilka

Старожил
BackEnd developer
16 Сен 2020
777
286
128
-_- ты где то скопировал настройки? У тебя в мета scr вместо src
 
Реакции: XDeveluxe

trueINKIE

Новый участник
4 Авг 2025
8
0
3
-_- ты где то скопировал настройки? У тебя в мета scr вместо src

Боже, да я ближе к ночи вчера писал и видно опечатался... После исправление - всё сработало.
Спасибо за помощь!)

Код:
[INFO] Starting RAGE Multiplayer server...

[============================================================]
||
||      MaxPlayers              100
||      Sync rate               40ms
||      Name                    RAGE:MP Unofficial server
||      Gamemode                freeroam
||      Streaming distance      300
||      Announcement            disabled
||      Voice chat              disabled
||      Address                 127.0.0.1:22005
||      Connection limits       disabled
||      Encryption              enabled
||      NodeJS                  enabled
||      C#                      enabled
||
[============================================================]


[INFO] Loading NodeJS packages...
[INFO] Starting packages...
[DONE] Server packages have been started.
Initializing Bootstrapper.dll (1.1.0.0)..
-> SERVER STARTED AT 07.08.2025 11:45:17
Unable to load acl.xml
ACLEnabled: False
Loaded 667 entries from vehicleData.json
Loading resources..
-> Starting Server resource..
Server: loading scripts.. found 1 script(s)
Server: instantiating Server.Test..
Server: loading server events.. found 1 server event(s)
Server: loaded 1 server events(s)
123
-> Resource Server started!
Started! Waiting for connections..
[DONE] Started resource transfer server at 22006 port.
[DONE] Client-side packages weight: 0.000000 MB (uncompressed: 0.000000 MB).
[INFO] Initializing networking...
[DONE] Networking has been started: (IPv4-only) at 127.0.0.1:22005
[DONE] The server is ready to accept connections.
 

Similar threads