docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Class NetCodeConfig

    Config file, allowing the package user to tweak netcode variables without having to write code. Create as many instances as you like.

    Inheritance
    object
    Object
    ScriptableObject
    NetCodeConfig
    Implements
    IComparable<NetCodeConfig>
    Inherited Members
    ScriptableObject.SetDirty()
    ScriptableObject.CreateInstance(string)
    ScriptableObject.CreateInstance(Type)
    ScriptableObject.CreateInstance<T>()
    Object.GetInstanceID()
    Object.GetHashCode()
    Object.Equals(object)
    Object.InstantiateAsync<T>(T)
    Object.InstantiateAsync<T>(T, Transform)
    Object.InstantiateAsync<T>(T, Vector3, Quaternion)
    Object.InstantiateAsync<T>(T, Transform, Vector3, Quaternion)
    Object.InstantiateAsync<T>(T, int)
    Object.InstantiateAsync<T>(T, int, Transform)
    Object.InstantiateAsync<T>(T, int, Vector3, Quaternion)
    Object.InstantiateAsync<T>(T, int, ReadOnlySpan<Vector3>, ReadOnlySpan<Quaternion>)
    Object.InstantiateAsync<T>(T, int, Transform, Vector3, Quaternion)
    Object.InstantiateAsync<T>(T, int, Transform, ReadOnlySpan<Vector3>, ReadOnlySpan<Quaternion>)
    Object.InstantiateAsync<T>(T, InstantiateParameters)
    Object.InstantiateAsync<T>(T, int, InstantiateParameters)
    Object.InstantiateAsync<T>(T, Vector3, Quaternion, InstantiateParameters)
    Object.InstantiateAsync<T>(T, int, Vector3, Quaternion, InstantiateParameters)
    Object.InstantiateAsync<T>(T, int, ReadOnlySpan<Vector3>, ReadOnlySpan<Quaternion>, InstantiateParameters)
    Object.Instantiate(Object, Vector3, Quaternion)
    Object.Instantiate(Object, Vector3, Quaternion, Transform)
    Object.Instantiate(Object)
    Object.Instantiate(Object, Scene)
    Object.Instantiate<T>(T, InstantiateParameters)
    Object.Instantiate<T>(T, Vector3, Quaternion, InstantiateParameters)
    Object.Instantiate(Object, Transform)
    Object.Instantiate(Object, Transform, bool)
    Object.Instantiate<T>(T)
    Object.Instantiate<T>(T, Vector3, Quaternion)
    Object.Instantiate<T>(T, Vector3, Quaternion, Transform)
    Object.Instantiate<T>(T, Transform)
    Object.Instantiate<T>(T, Transform, bool)
    Object.Destroy(Object, float)
    Object.Destroy(Object)
    Object.DestroyImmediate(Object, bool)
    Object.DestroyImmediate(Object)
    Object.FindObjectsOfType(Type)
    Object.FindObjectsOfType(Type, bool)
    Object.FindObjectsByType(Type, FindObjectsSortMode)
    Object.FindObjectsByType(Type, FindObjectsInactive, FindObjectsSortMode)
    Object.DontDestroyOnLoad(Object)
    Object.DestroyObject(Object, float)
    Object.DestroyObject(Object)
    Object.FindSceneObjectsOfType(Type)
    Object.FindObjectsOfTypeIncludingAssets(Type)
    Object.FindObjectsOfType<T>()
    Object.FindObjectsByType<T>(FindObjectsSortMode)
    Object.FindObjectsOfType<T>(bool)
    Object.FindObjectsByType<T>(FindObjectsInactive, FindObjectsSortMode)
    Object.FindObjectOfType<T>()
    Object.FindObjectOfType<T>(bool)
    Object.FindFirstObjectByType<T>()
    Object.FindAnyObjectByType<T>()
    Object.FindFirstObjectByType<T>(FindObjectsInactive)
    Object.FindAnyObjectByType<T>(FindObjectsInactive)
    Object.FindObjectsOfTypeAll(Type)
    Object.FindObjectOfType(Type)
    Object.FindFirstObjectByType(Type)
    Object.FindAnyObjectByType(Type)
    Object.FindObjectOfType(Type, bool)
    Object.FindFirstObjectByType(Type, FindObjectsInactive)
    Object.FindAnyObjectByType(Type, FindObjectsInactive)
    Object.name
    Object.hideFlags
    object.Equals(object, object)
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    Namespace: Unity.NetCode
    Assembly: Unity.NetCode.dll
    Syntax
    [CreateAssetMenu(menuName = "NetCode/NetCodeConfig Asset", fileName = "NetCodeConfig")]
    public class NetCodeConfig : ScriptableObject, IComparable<NetCodeConfig>

    Fields

    ClientServerTickRate

    The ClientServerTickRate singleton is used to configure the client and server simulation time step, server packet send rate and other related settings. The singleton entity is automatically created for the clients in the NetworkStreamReceiveSystem first update if not present. On the server, by countrary, the entity is never automatically created and it is up to the user to create the singletong instance if they need to. This behaviour is asymmetric because the client need to have this singleton data synced with the server one. It is like this for compatibility reason and It may be changed in the future. In order to configure these settings you can either:

    It is not mandatory to set all the fields to a proper value when creating the singleton. It is sufficient to change only the relevant setting, and call the ResolveDefaults() method to configure the fields that does not have a value set. class MyCustomClientServerBootstrap : ClientServerBootstrap { override public void Initialize(string defaultWorld) { base.Initialise(defaultWorld); var customTickRate = new ClientServerTickRate(); //run at 30hz customTickRate.simulationTickRate = 30; customTickRate.ResolveDefault(); foreach(var world in World.All) { if(world.IsServer()) { //In this case we only create on the server, but we can do the same also for the client world var tickRateEntity = world.EntityManager.CreateSingleton(new ClientServerTickRate ); } } } } The ClientServerTickRate settings are synced as part of the of the initial client connection handshake. (ClientServerTickRateRefreshRequest data). The ClientServerTickRate should also be used to customise other server only timing settings, such as

    • the maximum number of tick per frame
    • the maximum number of tick per frame
    • tick batching (MaxSimulationStepBatchSize and others.
    See the individual fields documentation for more information.
    Declaration
    public ClientServerTickRate ClientServerTickRate
    Field Value
    Type Description
    ClientServerTickRate

    ClientTickRate

    Create a ClientTickRate singleton in the client world (either at runtime or by loading it from sub-scene) to configure all the network time synchronization, interpolation delay, prediction batching and other setting for the client. See the individual fields for more information about the individual properties.

    Declaration
    public ClientTickRate ClientTickRate
    Field Value
    Type Description
    ClientTickRate

    EnableClientServerBootstrap

    Denotes if the ClientServerBootstrap (or any derived version of it) should be triggered on game boot. Project-wide setting, overridable via the OverrideAutomaticNetCodeBootstrap MonoBehaviour.

    Declaration
    [Header("NetCode")]
    [Tooltip("Denotes if the ClientServerBootstrap (or any derived version of it) should be triggered on game boot. Project-wide setting (when this config is applied in the Netcode tab), overridable via the OverrideAutomaticNetCodeBootstrap MonoBehaviour.")]
    [SerializeField]
    public NetCodeConfig.AutomaticBootstrapSetting EnableClientServerBootstrap
    Field Value
    Type Description
    NetCodeConfig.AutomaticBootstrapSetting

    GhostSendSystemData

    Singleton entity that contains all the tweakable settings for the GhostSendSystem.

    Declaration
    public GhostSendSystemData GhostSendSystemData
    Field Value
    Type Description
    GhostSendSystemData

    IsGlobalConfig

    Netcode helper: Allows you to add multiple configs to the PreloadedAssets list. There can only be one global one.

    Declaration
    [HideInInspector]
    public bool IsGlobalConfig
    Field Value
    Type Description
    bool

    Properties

    Global

    The Default NetcodeConfig asset, selected in ProjectSettings via the NetCode tab, and fetched at runtime via the PreloadedAssets. Set via RuntimeInitializeOnLoadMethodAttribute.

    Declaration
    public static NetCodeConfig Global { get; }
    Property Value
    Type Description
    NetCodeConfig

    Methods

    CompareTo(NetCodeConfig)

    Makes Find deterministic.

    Declaration
    public int CompareTo(NetCodeConfig other)
    Parameters
    Type Name Description
    NetCodeConfig other
    Returns
    Type Description
    int

    Reset()

    Setup default values.

    Declaration
    public void Reset()

    Implements

    IComparable<T>
    In This Article
    Back to top
    Copyright © 2025 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)