1+ using System ;
2+ using System . Collections . Generic ;
3+ using System . Linq ;
4+ using System . Text ;
5+ using System . Threading . Tasks ;
6+
7+ namespace RustOptimizer . Core
8+ {
9+ public static class Optimizer
10+ {
11+ /// <summary>
12+ /// This method gets the right settings for a specific profile, like Competitive or Ultra.
13+ /// It's the main logic for applying all the tweaks.
14+ /// </summary>
15+ public static Dictionary < string , string > GetOptimalSettings ( string profile )
16+ {
17+ var settings = new Dictionary < string , string > ( ) ;
18+
19+ // Universal Settings for all profiles
20+ settings . Add ( "graphics.vsync" , "False" ) ;
21+ settings . Add ( "client.headbob" , "False" ) ;
22+ settings . Add ( "effects.sharpen" , "False" ) ;
23+ settings . Add ( "effects.motionblur" , "False" ) ;
24+ settings . Add ( "effects.antialiasing" , "0" ) ;
25+ settings . Add ( "effects.maxgibs" , "0" ) ;
26+ settings . Add ( "global.showblood" , "True" ) ;
27+ settings . Add ( "gc.buffer" , "4096" ) ;
28+ settings . Add ( "client.clampscreenshake" , "True" ) ;
29+ settings . Add ( "effects.showoutlines" , "False" ) ;
30+ settings . Add ( "graphics.impostorshadows" , "False" ) ;
31+ settings . Add ( "console.erroroverlay" , "False" ) ;
32+ settings . Add ( "accessibility.treemarkercolor" , "0" ) ;
33+ settings . Add ( "audio.musicvolume" , "0" ) ;
34+ settings . Add ( "audio.musicvolumemenu" , "0" ) ;
35+
36+ switch ( profile )
37+ {
38+ case "Competitive (Max FPS)" :
39+ // Pure performance focus based on the latest video
40+ settings . Add ( "graphics.drawdistance" , "500" ) ;
41+ settings . Add ( "graphics.lodbias" , "1" ) ;
42+ settings . Add ( "graphics.af" , "1" ) ;
43+ settings . Add ( "graphics.shadowquality" , "0" ) ;
44+ settings . Add ( "graphicssettings.shadowcascades" , "0" ) ;
45+ settings . Add ( "tree.meshes" , "0" ) ;
46+ settings . Add ( "effects.ao" , "False" ) ;
47+ settings . Add ( "graphics.dof" , "False" ) ;
48+ settings . Add ( "effects.bloom" , "False" ) ;
49+ settings . Add ( "effects.shafts" , "False" ) ;
50+ settings . Add ( "effects.vignet" , "False" ) ;
51+ settings . Add ( "grass.quality" , "0" ) ;
52+ settings . Add ( "particle.quality" , "0" ) ;
53+ settings . Add ( "sss.enabled" , "False" ) ;
54+ settings . Add ( "water.quality" , "0" ) ;
55+ settings . Add ( "water.reflections" , "0" ) ;
56+ break ;
57+
58+ case "Recommended (Optimized)" :
59+ // Balances performance with visual fidelity to reduce pop-in.
60+ settings . Add ( "graphics.drawdistance" , "1500" ) ;
61+ settings . Add ( "graphics.lodbias" , "2.0" ) ;
62+ settings . Add ( "graphics.af" , "4" ) ;
63+ settings . Add ( "graphics.shadowquality" , "1" ) ;
64+ settings . Add ( "graphicssettings.shadowcascades" , "1" ) ;
65+ settings . Add ( "tree.meshes" , "50" ) ;
66+ settings . Add ( "effects.ao" , "True" ) ;
67+ settings . Add ( "graphics.dof" , "False" ) ;
68+ settings . Add ( "effects.bloom" , "True" ) ;
69+ settings . Add ( "effects.shafts" , "True" ) ;
70+ settings . Add ( "effects.vignet" , "False" ) ;
71+ settings . Add ( "grass.quality" , "50" ) ;
72+ settings . Add ( "particle.quality" , "50" ) ;
73+ settings . Add ( "sss.enabled" , "True" ) ;
74+ settings . Add ( "water.quality" , "1" ) ;
75+ settings . Add ( "water.reflections" , "1" ) ;
76+ break ;
77+
78+ case "Balanced (Good-looking & Fast)" :
79+ // A middle ground that provides a good experience on most systems.
80+ settings . Add ( "graphics.drawdistance" , "1000" ) ;
81+ settings . Add ( "graphics.lodbias" , "1.5" ) ;
82+ settings . Add ( "graphics.af" , "2" ) ;
83+ settings . Add ( "graphics.shadowquality" , "1" ) ;
84+ settings . Add ( "graphicssettings.shadowcascades" , "1" ) ;
85+ settings . Add ( "tree.meshes" , "30" ) ;
86+ settings . Add ( "effects.ao" , "True" ) ;
87+ settings . Add ( "graphics.dof" , "False" ) ;
88+ settings . Add ( "effects.bloom" , "True" ) ;
89+ settings . Add ( "effects.shafts" , "True" ) ;
90+ settings . Add ( "effects.vignet" , "False" ) ;
91+ settings . Add ( "grass.quality" , "25" ) ;
92+ settings . Add ( "particle.quality" , "25" ) ;
93+ settings . Add ( "sss.enabled" , "True" ) ;
94+ settings . Add ( "water.quality" , "1" ) ;
95+ settings . Add ( "water.reflections" , "1" ) ;
96+ break ;
97+
98+ case "Ultra (Maximum Visuals)" :
99+ // High-quality settings based on the provided client.cfg
100+ settings . Add ( "graphics.drawdistance" , "2500" ) ;
101+ settings . Add ( "graphics.lodbias" , "5" ) ;
102+ settings . Add ( "graphics.af" , "16" ) ;
103+ settings . Add ( "graphics.shadowquality" , "0" ) ;
104+ settings . Add ( "graphicssettings.shadowcascades" , "1" ) ;
105+ settings . Add ( "tree.meshes" , "100" ) ;
106+ settings . Add ( "effects.ao" , "False" ) ;
107+ settings . Add ( "graphics.dof" , "False" ) ;
108+ settings . Add ( "effects.bloom" , "False" ) ;
109+ settings . Add ( "effects.shafts" , "True" ) ;
110+ settings . Add ( "effects.vignet" , "False" ) ;
111+ settings . Add ( "grass.quality" , "0" ) ;
112+ settings . Add ( "particle.quality" , "0" ) ;
113+ settings . Add ( "sss.enabled" , "True" ) ;
114+ settings . Add ( "water.quality" , "0" ) ;
115+ settings . Add ( "water.reflections" , "0" ) ;
116+ break ;
117+
118+ default :
119+ // Fallback to Recommended (Optimized) as the default
120+ goto case "Recommended (Optimized)" ;
121+ }
122+ return settings ;
123+ }
124+ }
125+ }
0 commit comments