How to use viewmode unlit in a shipping build?

I’m using Paper2D, and I’ve found using the console command “viewmode unlit” makes my sprites look much cleaner and fixes annoying things like text renders always appearing black and the like. However, console commands don’t work in shipping builds. Is there either:

a) A way to enable console commands in shipping builds?
or
b) A setting to entirely disable all lighting. I’ve turned off everything in rendering under project settings but it still is doing general lighting.

need to know about this one too =(

Well, why don’t you try to mimic the same effect using post-processing ?

so ■■■■ worthless respons

1 Like

a) You can’t without some C++ hacking and even if oyu do that is partly functional and don’t change fact that shipping build has log system disabled. Main reason why console is disabled is to prevent end user to easilly mess with your game in unintentional way.

B) You can do this in C++ in GameVieport object that you can get from ()

And set ViewMoideIndex varable:

Here list of possible options:

Note that engine let you disable and enable invidual rendering features using show flags which you can contorol by setting values in EngineShowFlags varable

You can not do this with blueprints, maybe there way to do this via config but i’m not sure. But you can make bluerpints nodes in C++ that let you do things that you want

5 Likes

@anonymous_user_f5a50610’s way is best if you have a lot of shaders that use the lit shading models.
If you only have a few, you could sort of fake it by converting all your shaders to be unlit only.

HOWEVER, I understand if you can’t do that due to needing translucent-shader-based orthographic sorting for example. That requires translucent shaders rather than unlit ones. But in that case maybe you can convert them all to output to Emissive? IDK.

This method worked for me in Shipping build, thank you for this share ! :slight_smile:

hey, can you share some C++ code ? I’m searching for solution and came here, but hard to apply it :frowning:

This code will apply the ViewMode even in Shipping builds:

ApplyViewMode(EViewModeIndex::VMI_Unlit, false, *()->GetGameViewport()->GetEngineShowFlags());

Make sure to call it once at beginning of your game’s logic.

Like said you could play directly with the FEngineShowFlags (returned from GetEngineShowFlags()) to set and unset uneccessary rendering features.

Unfortunately, it seems this changes a core .ini file and applies properties even after restart. Still fixes the problem, but now setting to lit in the editor window doesn’t work correctly anymore. WARNING

Note: The second parameter is bPerspective, mine is set to false because i’m using an orthographic camera. Make sure the set it to true if you are using a Perspective camera

1 Like

You can do it, if:

  1. Add (r.ForceDebugViewModes=1) → (DefaultEngine.ini)

  2. In blueprint need call (Execute Console Command),
    and write there (viewmode unlit)

01
02

1 Like

Im trying to set unlit mode or modify showflags on a 5.2 shipping game. Even with r.ForceDebugViewModes set to 1, console outputs this “Debug viewmodes not allowed in Test or Shipping builds.”
image

Also i cant turn off showflags with “show ” and as its a shipping build, ShowFlag.xxx=x doesnt work.

Is there any way possible in this case?

Nice, there’s also easier solution:

Yes, that’s how it works, I explained why in this post: Unlit Mode in packaged game - #16 by Kulagin

That doesn’t work in shipping build.