LogoLogo
API Status
  • 👋Welcome
  • 🌐What is Morpheus Platform?
    • Interoperability
  • â„šī¸Help
    • 📗Glossary
    • 🆘Support
    • Firewall problems
    • EULA
  • CREATION
    • 🎮Unreal Development
      • ⚡Get Started
        • âš’ī¸Download the Editor
        • âĢUpload Content
        • 🌎Creating your own map
        • 📝Morpheus Base Project
        • ❓Differences from Unreal
          • 🧍Character Configuration
        • 📡Morpheus Networking
          • Introduction to Morpheus Networking
          • Network Levels
          • Replicated Properties
          • RPCs
          • Morpheus Render Targets
          • Morpheus Array
          • Networking FAQ
          • Replicating Sublevels
      • 📚Features & Guides
        • 📒Example Plugin
          • Nameplates
          • In-game roles
          • Resizing
        • 🏊Actor Pooling
        • 🔊Audio
        • 🎭Avatars
          • Creating an Avatar
          • Attachments
            • MML Attachments
          • Custom Animation Variables
          • Importing an NFT collection
          • Capsules and Mesh Transforms
        • 🤖Bots
        • đŸŽ™ī¸Chat
          • Unreal Text Chat
        • đŸŽ›ī¸Control Panels
          • Control Panel Configuration
          • DJ booth mission control
          • Observer Controls
        • 🔉Crowd Audio
        • đŸ¤ŧCrowd Rendering
          • Legacy Animated Crowd
            • Animated Crowd Console Commands
            • Attaching static meshes to crowd members
          • Crowd Materials
          • Performance Parameters
          • Live Config Settings
          • Crowd Animation
            • Crowd Anim Blueprint
              • User Guide - Crowd Anim Blueprint
              • Reference Guide - ABP Nodes
                • Animation Playback
                • States and State Machines
                • Variables
                • Transitions
                • Special
                • Blends
                • Additional Notes
        • 🍱Helpers & Extras
          • "Instanced Objects" in Blueprints
          • Objects with "world context"
          • Making DataAsset classes
          • Duplicate Objects
          • The Bootflow Subsystem
          • The "Wait For Condition" System
          • Advanced Graphics settings
          • Listening to inputs on UObjects
          • Morpheus UserID
          • World Services
          • M2Extras: Skins System
        • đŸ–Ĩī¸Loading Screen
        • ⚡Live Config
          • Editing for a World
          • Editing Locally
          • Default Settings
          • Accessing via Blueprint
          • Adding New Settings
          • Overriding Defaults
          • Using Arrays
        • 🧊MML
        • đŸ•ēMotion Capture
        • 📡Networking
        • đŸ“ĸNotifications
        • Raycastable Crowd
        • 🌐Singletons
        • 📱Streaming & Multiplatform
          • GFN on mobile
        • đŸ–Ĩī¸UI
          • "UI Mode"
        • đŸ—ƒī¸User Collections
          • Creating a New Object Definition
          • Accessing from Unreal
            • Creating Objects Definitions
            • Transfer Objects
            • User Collection Views
            • Receiving Updates
        • đŸ“ēVideo Players
          • Embedded Video Player
          • Millicast video streaming
            • How to Setup an In-Game Video Stream
            • Picture-in-Picture mode
          • Streaming Video Player
            • How to Setup a URL Video Player
            • Picture-in-Picture mode
        • 🐞Visual Debugging
          • Inspector
        • đŸĒŸWeb UI
        • Online Services
          • KV Store Service
        • 💠Web Requests
          • Http Requests
            • Legacy HTTP Nodes
          • JSON Handling
          • WebSockets
          • Identity Validation
          • Allowed External URLs
          • Walkthrough Example
            • Example Counter Service
        • âœˆī¸World Travel
          • World Travel in the editor
        • Avatar Physics Assets
        • Action Gameplay Helper Components
      • 🔑Workflows
        • â†—ī¸Upgrade the Editor
          • đŸ–Ĩī¸Version History
        • âš™ī¸Editing Project Settings
        • 📈Profiling
        • đŸ§ēMarketplace Importing
        • đŸ› ī¸Extra Workflows
          • Setup Play-in-Editor
          • Setup Local Asset Validation
          • Adding Gameplay Tags
          • Validating Game Assets
          • Custom Connection Modes
          • Connect Editor to a World
          • Common Issues
      • 📚Useful Reading
        • ⭐Best Practices
    • 🌎Worlds
      • 📩Invite Players
        • Setting Role Groups
      • Persistent Worlds
      • Always on Worlds
    • 📅Running events
      • ✅Large scale events - Checklist
      • 👾Anti-Cheat (EAC)
      • 🎮Player Entry
        • 📱React Native
        • Steam
        • đŸ’ģHardware Reqs
      • đŸŽĨBroadcast
        • 📹OBS Integration
      • Failover
      • 🏁Capacity And Queue Management
  • ADMINS
    • đŸ‘ĒAccess Control
      • Adding metaverse contributors
      • Creating a new project
    • 💲Pricing
      • Development Support
      • Included Usage & Overages
      • Cloud Streaming
      • Access Modes
      • War Room Support
      • Platform SLA
    • âš™ī¸Settings
      • đŸ—ƒī¸Projects
  • APIs and Tooling
    • đŸ–Ĩī¸API Reference
      • Accounts
      • Events
      • Key/Value Store
      • Organizations
      • Realtime
      • User Profile
      • World Builder
      • Worlds
    • đŸ’ģTemplate Web App
      • đŸ’ĸModeration
    • Pixel Streaming
    • 🚀Launcher
  • Integrations
    • 📊Analytics
      • Sending events from web
      • 🎮Sending Events from Unreal
    • đŸ’ŦChat
      • 🎮Integrating Pubnub with your Unreal Project
      • Adding Moderation to Chat
Powered by GitBook
On this page
  • Adding your own project settings overrides
  • How to override CVars per scalability group (recommended)
  • How to override CVars globally

Was this helpful?

  1. CREATION
  2. Unreal Development
  3. Workflows

Editing Project Settings

Many project settings behave in an undefined way with World Builder. We remove these instances from the Project Settings UI inside the editor to help make this clear.

This is important as your deployed game will run in a different game environment from your editor, including its config settings.

Adding your own project settings overrides

You are able to do so using the standard Project Settings UI. If there is a setting you'd like to change that isn't visible, we recommend contacting your support engineer. We're working on making it clearer as to why some settings are disabled.

It is still possible to add settings to the project config file via the ini file directly but we do not encourage usage of this and should only be used when required.

How to override CVars per scalability group (recommended)

This process outlines how you can modify the existing scalability group settings. This allows users within your game to select an overall graphics settings from the game menu - where each setting represents a scalability group - but where the CVars set by that scalability group can deviate from our predefined base settings.

The base scalability group CVars can be found within <Editor Location>/Config/BaseScalability.ini for reference. Section headers are structured as [<section name>@<configuration variant>] where the configuration variants are the quality levels that the user is able to choose. For example, the [AntiAliasingQuality@0] section will define all the anti aliasing CVars to be applied when a user selects quality level 0

To override the CVars that will be applied when a user selects any quality level you can

  1. Find or create the <Project Location>/Config/DefaultScalability.ini config file for your project.

  2. Refer to the <Editor Location>/Config/BaseScalability.ini config to locate the CVar you want to override.

  3. Copy the section header for the CVar you will be overriding and paste it into the DefaultScalability.ini if it doesn't already exist.

  4. Copy the CVar(s) you want to override into DefaultScalability.ini uner the appropriate section headers copied or located in step 3.

  5. Modify the values for those CVars.

After doing the above steps, you must re-upload your content and use the new content for the changes to take effect. Once that is done, the next time you launch a world with your new content, your users will be using the new quality settings with the custom CVars

Example usage

Assume I want my game to display cinematic quality shadows at the lower graphical settings. I can locate the BaseScalability.ini file and find the section header [ShadowQuality@Cine]. To ensure that the lowest quality setting show these same shadow settings I can copy and paste this section header and all CVars within it into <Project Location>/Config/DefaultScalability.ini for my project. Now after changing the quality level in the heaer to be 0, the lowest quality level will use these CVars and show cinematic shadows

DefaultScalability.ini

[ShadowQuality@0] 
r.LightFunctionQuality=1 
r.ShadowQuality=5 
r.Shadow.CSM.MaxCascades=10 
r.Shadow.MaxResolution=4096 
r.Shadow.MaxCSMResolution=4096 
r.Shadow.RadiusThreshold=0 
r.Shadow.DistanceScale=1.0 
r.Shadow.CSM.TransitionScale=1.0 
r.Shadow.PreShadowResolutionFactor=1.0 
r.DistanceFieldShadowing=1 
r.VolumetricFog=1 
r.VolumetricFog.GridPixelSize=4 
r.VolumetricFog.GridSizeZ=128 
r.VolumetricFog.HistoryMissSupersampleCount=16 
r.LightMaxDrawDistanceScale=1 
r.CapsuleShadows=1 
r.Shadow.Virtual.MaxPhysicalPages=8192 
r.Shadow.Virtual.ResolutionLodBiasDirectional=-1.5 
r.Shadow.Virtual.ResolutionLodBiasDirectionalMoving=-1.5 
r.Shadow.Virtual.ResolutionLodBiasLocal=0.0 
r.Shadow.Virtual.ResolutionLodBiasLocalMoving=0.0 
r.Shadow.Virtual.SMRT.RayCountDirectional=16 
r.Shadow.Virtual.SMRT.SamplesPerRayDirectional=8 
r.Shadow.Virtual.SMRT.RayCountLocal=16 
r.Shadow.Virtual.SMRT.SamplesPerRayLocal=8

How to override CVars globally

CVars can be overridden by creating a DefaultConsoleVariables.ini file in the same folder as the project config files, i.e. <Project Location>/Config/DefaultConsoleVariables.ini and putting all the cvars under the section [WorldBuilder].

The contents should look like this with a list of the CVars to override:

[WorldBuilder]
r.ScreenPercentage=150
t.MaxFPS=120
sg.GlobalIlluminationQuality=0

Any scalability group CVar (starts with 'sg.') will only be overridden if the user has not made graphics settings changes, as those changes take priority. Any other CVar will apply if they are not marked read-only (CVar is marked with the ECVF_ReadOnly flag in the codebase).

When a CVar has no effect, a warning will be logged.

You can also add CVars specific to device profile platforms:

; Disables GI globally unless using a G6 Full (GFN) device 
[WorldBuilder]
sg.GlobalIlluminationQuality=0

[Windows_G6Full WorldBuilder]
sg.GlobalIlluminationQuality=3
PreviousVersion HistoryNextProfiling

Last updated 6 months ago

Was this helpful?

🎮
🔑
âš™ī¸