MZ@ !L!This program cannot be run in DOS mode. $PEL" 0B  @`O,    H.textH  `.rsrc,@@.reloc @B$H8q{*B{}*"}*0{,*s }s }(_o +Io o o {o -s { o {o! o" o - ,o **U 0{,*(# o$ s% % o& %o' %o( }{o) "G?"Q?"fff?s* o+ (# o$ s% %o& %o, %o' }{o) "33s?"Y?" ?s* o+ (# o$ s% % o& %o, %o( } { o) "ff&?"33s?"@?s* o+ (# o$ s% % o& %o, %o- } { o) "33s?"33s?"33s?s* o+ (# o. s% % o& %o- %o' } { s% %o, } { o) "33s?"Y?" ?s* o+ (# o$ s% % o& %o( %o' } { o) "k?"ףp?"Hz?s* o+ "G="=">"?s/ ( }" #>"{.>"= W>"?s/ ( }(# o0 s% }{o) {o1 {o2 {o1 {s3 o4 {o) "33s?"Y?" ?s* o+ {o2 "33s?"Y?" ?s* o+ {o5 o6 /{o5 o7 {o5 o8 /{o5 o9 {o5 o: /{o5 o; {o5 o< /{o5 o= (# o> s% }{o) {o1 {s3 o4 {s3 o? {s3 o@ }*0{-*(A ,}*(B (C oD +Eo  ,6 C.. D.&(A ,(`(+sF oG }o -u ,o */Q0H{-*(( W{sH rp{(+(I }*0{(+(J ~t-rap+()oK (( " ף<0" ף2rqp+ rp+rp r3p~"BZ](L rp( ](M rp("](M r5p($_(&_(N (O { (+(P rp~](M rp~](M r!p~](M (Q {(+(P (T,Irkp(N_(M rp(P_(R_(N (R { (+(P +r3p{(+(P (1,.rSp(3_(5_(N { (+(P (o,=rp(k_(M rHp(i_(M (R { (+(P (S "@(T (+(U [%"RC(V (W rp{(+(P +M{oX {.{ +{ [%"B(Y (Z ,}X{o[ 2(\ rp{(+(P {%-&rp(+(] }(S "@(T (+(W {{{o[ Y(^ oX {(+(P {(+(_ }{(` -+{oa ob -{ oc +( o  + o   ( "A(T  o -  , o (d (+(U rp[%"A(Y (e , (rp[%"A(Y (e ,(rp[%"A(Y (e ,(rp[%"A(Y (e ,}(f (S (f """PG"Asg (h ** >s%}*0oi {(+(J -rp+rpo o rp(Q o oj ( (R a(B (k ,Pol a rp-r$p+r6p(Q ( (+(m ;B aon 81](B (k 9ol ]((+(U { [%"C(V (P [%"\C(o (p rTp(q { [%"B(V (P (f Y(r "75Cy]on 8g_(B (k 9ol _  ((+(U { [%"C(V (P k k k[%"\C(o (p (s   (t { [%"B(V (P (f  ; _on 8ou 9(+(U { [%"C(V (P r`pol %-&+oK rhp(Q { [%" C(V (P rrp[%"B(V (e ,(rvp[%"B(V (e ,((f 8(B (k 9(+(U { [%"C(V (P ol  r`p oK rhp(Q { [%" C(V (P {-rzp+rp[%"B(V (e ,}(f +rp(R { (+(P ov ,-ov ow (` -ov ow {(+(P (S *0{:(# ox s% % o& %o, %o( }{o) "k?"ףp?"Hz?s* o+ {o2 "k?"ףp?"Hz?s* o+ {oy (z o+ {o{ (z o+ {*0D@  + X i2s| %o} %o~ %o %=o *._ o *0;"V"?Vov ,$ov o u ,o Vo V*03TTov ,$ov o u ,o To T*08oi (C ol ( o X]X] o on *0@ {oc o +( %o on ( - o *103 (_o +o %o on o - ,o * ( 0(t%-&+({&* "pB"pB">D"Dsg }rp}( *JrTp( ( *0 {( . .d8^%{%%rp%{)(%rp%{*(%rp%{+(%r$p( *^%{%%rp%|)( %rp%|*( %rp%|,(t %r$p( *{%*0S {( E+1{+(*|,( ( *{--r(p*r4p*{'*0a {( E4+8r>p*rLp*rXp*{.( -rhp*{.o *rrp*rp*( *0N s%}#%}$%}&%}(%}+%})%}*%}% ~/o *0P s%}#%}$%}&%}(%},%k})%k}*%}% ~/o *06 s%}#%}$%}(%}-%}% ~/o *0> s%}#%}$%}(%}.%}'%}% ~/o *06 s%}#%}$%}(%}'%}% ~/o *0s /rprprp(&rpr pr1 pr7 p(&rpr prD p(&rpr p(B r pr p(&rprprp"B""Brp(&rprOprp" A"?"HBrup(&rprprp"?"L="@@rp(&rpr prp"@"?"pBr9p(&rprnprp"?""@rp(&rprprp"?""@rp(&rprfprp"@A"" Brp(&rpr pr5p(&rprprp(&rpr-pr_p(&rprprp"?""@r9p(&rpr(prp"?""@rPp(&rpr !prp"?""@r3!p(&rpr"prp"?""@r#p(&rpr$prp"?""@r$p(&rpr&prp"?""@r 'p(&rpr(prp"?""@r)p(&rpr"+prp"?""@rL+p(&rpr_-prp"?""@r-p(&rpr/prp"?""@r0p(&r2pr2pr2p"A""Br3p(&r2prR4pr4p"A""Br4p(&r2pr5pr6p"B"@"DrK6p(&r2pr7pr7p"pC"@"Er&8p(&r2prY9pr9p" A"?"Br9p(&r2pr@;pr;p"C" A"Dr;p(&r2pr=pr=p"B"?"BrC=p(&r2pr>pr>p" B"?"Br ?p(&r2pru@pr@p"A""Br@p(&r2prApr0Bp" A""BrnBp(&r2prCprCp"""rCp(&r2prLprtLp" A""HCrLp(&rLpr?NpryNp" A""HCrNp(&rLprOprPp"?""HBrFPp(&rLprQprQp"A""HCr#Rp(&rLprSprSp"A""HCrSp(&rLprUprCUp"A"?"HCreUp(&rLprVprVp"A"?"CrWp(&rLprYXprXp"@"?"HBrXp(&rLprYpr$Zp"" " ArZZp(&rLpr[pr \p"?" #<"@rE\p(&rLpr]pr^p"@""HBrD^p(&rLpr_pr_p"@""Ar`p(&rLprTaprap"B"?"Crap(&rLprWcpr}cp"B"?"Crcp(&rLprdeprep"B"?"Crep(&rLprqgprgp"B"?"Crgp(&rLpriprip"B"?"Crip(&rLprkprkp"pA"?"Crlp(&rLprDmprdmp"pA"?"Crmp(&rLprnprop"pA"?"Cr]op(&rLprpprpp"pA"?"Crqp(&rLprirprrp"pA"?"Crrp(&r&tpr\tprp"?""@rtp(&r&tprSvprp"?""@ryvp(&r&tprwprp"?""@rwp(&r&tprMyprp"?""@rqyp(&r&tprzprp"?""@rzp(&r&tprS|prp"?""@ry|p(&r&tpr}pr~p"A""Br2~p(&r&tpr}prp"A"?"Drp(&r&tprpr@p"B"?"Drlp(&r&tprwprp"A"?"Drقp(&r&tpr$prZp"@""Arp(&r&tprprp"@""pBr!p(&r&tpr.prxp"A"?"Drp(&rprprp"?""@r1p(&rprprĊp" A""Brp(&rprGprp"4C" A"aErˌp(&rprprTp">""@rvp(&rߏprpr-p"A""CrIp(&rߏprƑprp"zD"?"PGrp(&rߏprsprp"D"?"PGrɓp(&rߏpr:prdp"?" #<"HBrp(&rߏprݖprp"=""@rIp(&rߏprprΘp"?""@rp(&rߏprIpr{p"=""@rÚp(&rߏpr֛prp"@"?"Ar0p(&rߏprwprp"@"?"HBrŝp(&rߏprprDp"@"?"pBrtp(&rߏprprӠp"@F""$tIrp(&rߏpr"prHp"@F""$tIrlp(&rߏprYprp" A"?"Brp(&rߏprprܤp" A""zDrp(&rߏpr'pr[p"@"?"Arp(&rߏprprp"B""@Frާp(&rߏprprŨp"HC""@Frp(&rߏprprp"@""zDr8p(&rߏprWpryp"B""@Frp(&rߏprprȬp"B""@Frp(&rߏprpr)p" A"?"Brep(&rߏprjprp"A"?"Brگp(&rߏprprp"@?""@rϰp(&rߏpr"prp"?""@rPp(&rߏprƲprp">""@rp(&rlprpr̳p(&rlprprp"?"=" Arp(&rlprjprp"?"" Arp(&rlprͷprp"B"@"Dr5p(&rzprprܹp"?"" Arp(&rzprprGp(&rzprRprp""H"HBr~p(&rzprpr p(&rzprԿprp"?""@rp(&rzprprp(&rzprprp"?"="@rp(&rzpryprp"""zDrp(&rzprprp"B"?"zDrFp(&rzprprp"""zDrp(&rzprprp"B"?"zDrp(&r;prqprp"?"" Arp(&r;prprp"?"" Arp(&r;preprp"̾""rp(&r;prpr*p">""@rlp(&r;prprp"?""@rp(&rtprprp"HB""Brp(&rtprcprp"@""Brp(&rtpr,pr^p"B""Brp(&rtprprp"B""Brp(&rlprprp"?""@rp(&rlpr-prep"@"?"pBrp(&rprprp xr8p(&rprWprprp(&rprprp"@"?"pBr>p(&rprprp"A"?"Brp(&rpr prDp(&rprprp  rOp(&rprprp(&rprprp(&rprprp"@">"ArDp(&rprprp" @"?" Arp(&rprprp"?"="@rp(&rprprp"?"?"@rp(&rprprp"?""@@r:p(&rpr?prp"A"?"Crwp(&rprprp"@"?"Ar:p(&rpriprp(&rprprp(&rprprp(&rprprp"@"?" Ar6p(&rprprp  r5p(&rprprp(&rpreprp(&rpr prp"?">"Ar p(&rprS prp2r p(&rJprprp(&rJpr prp"@"?"BrAp(&rJprprp"=""?rp(&rJprprp"L=""?r9p(&rJpr4prp"?"L="@rlp(&rJprprp(&rJprprp(&*~P*P*~Q*Q*~R*R*~S*S*~L*~A*0fABCD"?( EFGHI J KO~A-(,*"L"M"N(,*"?"?""*0 ~O-*~t,~A-(,*( "5*~N( XN~N~E4*"N(/-*(  ~B~C"?ZX ~B~C"?ZY " 6Y"?"BY( [( +4Y"?( [( e ~AYEZZ+X "( +J7~M"<~DZX( M"?Z4~M"=Y( M ~M( ~D"?Z( ~L ( L~L( "o:4 "L(.~,xrp %~A%]%~B]%~L]( rn p~]~]~](L (R ( *0~I-"?+">"?~L~FZX( ~J-"?+">"?~L~GZX( ~K-"+ ~Le~HZ~L( *0-+o -*"  o ,G+8 o ,$o -o ,o X X X o 2(%o -+ o o ('o (#- ~B(!*k[(!*0_A"BB" AC"?D"@E"?F"?G"@AHIJK*~_*_*~`*`*~a*a*F~U,~t**0NU"?( V( WXY">( Z( [*~\o "^(2(4(6*B, ~\o &*B, ~\o &*F, ~\o **0I~U, ~t,-*~To J k~VZ(s ~WX / ~To T*J-*~To J*0D~U,~t, ~X,+`,*~To J Y3 ~To T*0/-+o -*o+ , o 0*o *0R(@ -*~\o 1 ~\o (2(4(6*(2o (6~\o (4~U,~t,~Y-*( "5*~^( X^~^~Z4*"^o -*~]o ~\o +( ~] o ( -o  +H~]o ,0o -'o ,;( -o - o X X~]o /~[2* 0Qr p(+TU"@V WX"?Z[s \s ]*~d*d*&(C*c*0.(D~c, ~cr p ( (R o *0W~bo ,*1(B 4o ~bo ( ,~c,~crZ!p(R o *0o(C-*(H ( -o ](B ( ,*(C]o * ~c, ~cr!pr!po (O o *1D*20o(C-*(H ( -o _(B ( ,*(C_o * ~c, ~cr!pr!po (O o *1D*20j(C-*(H ( -o (B ( ,*(Co * ~c, ~cr!pr!po (O o *1?*20M(C-*(H ( -o ](B ( ,*(Co ] & *3F .s b*~q*q*~r*r*~s*s*F~e,~t**0e">( f"?( g"( h"?( i"?( jkl"( m"? ( n*~oo "p(O(Q(S*0~e, ~t,-"?*o o+X 0"?*~l,o ,"?*o ~k, 1"?*k~hZ%k~hZ"@ZX"8X[ "?~g"?YZX ~m"6A~oo 14~oo ,%"6 "?~m~n[( ZXZ ,o - ~iZ "?4"? ~j6~j *0~e, ~t-*~oo 1 ~oo (O(Q(S*( "5*~p( Xp~p~f4*~p "p-+o -+o ~oo Xs 9 8 o   ,z o  o+X  1d o  o  -~k, ++,<X X~o  o & X~n6~n  o  X  o ?e o(O(S-+o -+o ,F+6o ,!o -o -o -XXo 2(Q*0]e"@f" @g"?h"?i"@jl"?m"Ans o**~Z*:~~~Z*0!" ~,~X ~X *~t,~-~(r "8***08t"?u"?v"?w"?x"?y"?z"?{"?|"?}"?~"?"?"?"?"?"?"?""?"?"? "?"?""*~*V~r po t*0~,*~/o 8( {( E4s8{#{${-o(+s o+ 8{#{${+o{){*s (+s o+ 8{#{${,o{)i{*is (+s o + +y{#{$(B {'( o(+s o + +9{#{${'(b(+sF o(+s o + ~o" ~{$o {&(` :s{&}{(36s}t}~s o +={(34s}t}~s o ( :o ~~%-&~s %o ~~%-&~s %o *A"A0$(B (  &  * Z~o to *Z~o to *Z~o to *Z~o to *0 ~-*rp(etrp(erp(c r(p(cZur !p(cZvr"p(cZwr$p(cZxr&p(cZyr(p(cZzr"+p(cZ{r_-p(cZ|r/p(cZ}r\tp(c~rSvp(crwp(crMyp(crzp(crS|p(crp(crjp(crp(erRp(crp(erԿp(crp(erp(crp(erp(cr p(erp(dr p(frp(crOp(crp(cr p(crnp(crp(crfp(cr p(erp(er-p(e(*rp(erp(crp(crp(crp(crp(crip(erp(erp(cr?p(c(Urp(erp(crp(drp(erep(er p(crS p(d(8rp(er p(crp(crp(crp(erp(er4p(c(pr p(e,2(E,+ +~o o &X ~o 2*fx ~s s s *~**~**~**F~,~t**0`"?( ""?( ""?( " #<( *^"(l(n*0[~, ~t-*( "5*~( X~~4*"-+o -+o -*  8o 9o :o ;o ;X ~,o o 1io Ykk[~e4Nk"?~XZ( k"?~XZ(   1 1~o X Xo ?-(l (n(i X(j*"@"="L="?*~**~**0(u( (w( (F( (a(gr!ps }{o ( r0"pr"pr"p(`o (L o ( r #po *02(`,(`o ( , {o{o*2{o*r( o ( rX#po *0{%-&+( &* Js}( *2(G(g*(:*(;*(=*0*#(<}(>}#*N{{(?*0"N"5*(W "?.NZV*~**(.((+(V(9(q(-(X(A(r*0p~t, N"5*u&9YE !1AaQlw*N~u(ZZV*N~v(ZZV*N~w(ZZV*N~x(ZZV*N~y(ZZV*N~z(ZZV*N~|ZV*N~{ZV*N~}ZV*u49YE "- XXCNX8*N([ZV*N~ZV*N~ZV*N~ZV*N~ZV*N~ZV*N~ZV*N~ZV*0 ~t,~-*( "5*~o  P o  -~o  T*~o  J 2 ~ / (  +o  o X 2 X2~o  T*~r#p( +r#p( +*r~t,~-*N~ZV*0I(]-*(\ { X""B( } { X""B( } *0!~t,~-*o -+ o o (  o o { "B[o --o { "B[~Z(  o -+ T*~t,~-*{ ~Z"B( } *~t,~-*{ ~Z"B( } *f( }( }*0{ .3 (*0"{ ,; ݾ}(_o }}+u{o o oj ob {o -2ov ,Dov ow ,7ov ow ob {o ,}} 0}{o :{(} (*n}{, {o *{*s z{*07#{3{( 3 } +s {}*(*.s*( *r#p]%rp(c%r"p(c%rƲp(c(K*(g*( *( *r{{{o (I*( *r{{{o (J*BSJB v4.0.30319l##~0$!#StringsDE##US0i#GUID@i\#BlobW 3x# h# -!  4 0=0 P%  $   Z w A |A  A A o.  A  < 0 A G 0s .^gd [  0 1{ { gj&gg-gd  ?//9 H$A 0A  A " A "A %A &A K*kA A ; A 3 A  A A A A  -A  A A  $ Y#{\1A1#U1/1A \1T1 1bCk1eN1tZ1_%1i1i)t_1~_1_1_1_1._1R_1_1c_1@_1_1_1_1_1 1!1611D1   s S b  P                  # Q   J V0 V0 V@0 V 0 V0 J V_4 V4 V4 V4 V# 4  #     B4 @@@2   8 6< V Vf VA V V V V V V V V Vb V7 V V V V 0 @@@@@] @@& >   c@@@ O@a@  1D  @     @ 1O 1|Y @   10b l q  @@I@@@h  6 y@L@v @-  &   @a @? @ @ @e @ @ @ @s @ @ @Q @/ @w @ @@  @p p@ @ @      S 1 1/ 1w  T V V V; VC  @@@   e@@   G l  !f q 1 1   G     6  i  !  7  G   P X i > t !u %G%&e*k *  / /  05 % ,0* t0(4 0> 0T111 2AE  23h333J <45V 4b 4k #(57v (l5,eMP+,lMe,tMe+-{My-M.M .M^/Mq /MP+0M 0M 0"N;GN;|Nt ;P<0QI <Q=[R" =bR1 =jR_>qRp >yR?R ?R @R @RGS" G/S H@S^ITS JS KS L T OHTt PUQV QV Q$V R.Vk R8V StV TV UdW WW YxX [X]Xy]X ]X^Y ^Y_Y( _Y `0Y  `YjY$ j[t m\n]]Wnh]I +ox]+o] o]o_ 1 o_' ; o4_<E ob L p@bR qWb5W rnbsb9\ tb&uHfuhfEuof_ uwfv~f vf6wfH wf xf b xg,gt hhm hr hx h h:xi i"i i j'j 4j c    h lP p t . D.M.l.#u.+.3.; .C{.K.S [q#Ccxf<#Cccccc c#c@cCc`ccccc c@c`cccc`cc c c c c c! c@ cA c` ca c c c! c c c@ c` c c c c!cAcaccccc @`cc ` ccc!cAcc\_l!BIMp C   i } uT 5 t9  ,9 ++ cL9 */?59;@ !"#$ % & ' ( )1234567CDENOPQR!S!T#_%`'i)j)k+l+m-n-o/t1u1v3w35579"$(*!,#.%0'/nt9hvS/{ "r2  {  I i  ! " #+GeB6Vbfqv,9S10TH20d__30S0<>9__9_0b__9_0<>c__DisplayClass9_0Clamp01DirIntensity01S11S1<>9__9_1b__9_1<>c__DisplayClass9_1AcceptableValueRange`1IEnumerable`1AttributeBase`1EventHandler`1IEnumerator`1HashSet`1IReadOnlyList`1ConfigEntry`1<>7__wrap1CS$<>8__locals1<>m__Finally1S12Int32S2<>c__DisplayClass9_2b__2FieldRef`2Dictionary`2Vector2CS$<>8__locals2S13S3b__3S14S4S15S5S16S6S7S8<>9S9DefBTexture2DGUIDNAMEGetRangeFDefFStixsworldHD.UngodlyAI.TPHStixUngodlyAIOnGUIGetRangeIDefIKMVERSIONAUTHORvalue__gaConfigSchema_tabHarmonyLibmscorlibget_CurrentJob<>csecChallengeEpidemic_chronicSystem.Collections.GenericFullDesc_descget_CurrentManagedThreadId<>l__initialThreadIdWinIdAddResolvedNeed_maxNeedIsFullyStaffed_respectFullyStaffedadd_SettingChangedIsInfectedTrackedDeathChanceEnabledVerboseEnabledTrainingRateEnabledMasterEnabledTreatmentBiasEnabledDiagnosisMultEnabled_enabledOnCured_configuredCharacterCantBeVaccinatedIsVaccinatedOnInfectedCharacterModifierInfectedWasInfectedwasInfectedget_LastInfectedset_LastInfected_infectedOnEpidemicStartedRefundIfWastedget_LastReviewedset_LastReviewedHasBeenDestroyedidGAFieldk__BackingFieldk__BackingFieldk__BackingFieldk__BackingFieldk__BackingFieldk__BackingFieldk__BackingFieldk__BackingFieldk__BackingFieldk__BackingFieldk__BackingFieldk__BackingFieldk__BackingFieldk__BackingFieldk__BackingFieldk__BackingFieldk__BackingFieldGetFieldTextField_raiseThreshold_bandget_LastUnmetDemandset_LastUnmetDemandBindDKindHandleRebind_boundset_backgroundReplaceFlexibleSpaceget_Instanceset_Instance__instanceManualLogSourceAttributesPerFrameOverrideKeyCodeget_ModeTextureWrapModeset_wrapModeDirectorModeget_CurrentMode_modefeget_Message_cacheieAwakeInvokeget_timeScaleget_StaffMoraleget_LastStaffMoraleset_LastStaffMoraleVaccinesAvailableIEnumerableIDisposable<>3__needleRuntimeTypeHandleGetTypeFromHandleToggleget_toggleSingleSaveConfigFileIsVolatileUnityEngine.IMGUIModuleUnityEngine.CoreModuleUnityEngine.TextRenderingModuleUnityEngine.InputLegacyModuleGUIStyleMakeToggleStyle_toggleStyle_valueStyle_panelStyle_winStyleFontStyleset_fontStyleget_NamenameAttributesPerFrameget_unscaledDeltaTimeCalculateEstimatedTreatmentOutcomeUnityEnginebaselineget_FieldTypeValueTypeGetActiveChallengesOfTypeget_SettingTypeEnumTypeenumTypetypeSystem.CoreHardcoreBeforebeforeConfigure_treatmentChanceOfDeathOnFailureget_InvariantCultureTextureAcceptableValueBaseConfigEntryBaseCloseSystem.IDisposable.DisposeParsePatientNauseaRateStaffHygieneRatePatientHygieneRatePatientTemperatureRatePatientHealthRateStaffBoredomRatePatientBoredomRateStaffHungerRatePatientHungerRatePatientLitterRateStaffHappinessRateStaffToiletRatePatientToiletRateStaffThirstRatePatientThirstRateStaffEnergyRateUpdate_autoVaccinateget_WorldStateGUIStyleStateVaxState<>1__stateget_whiteAutoPromote_autoPromote_noWasteCompilerGeneratedAttributeDebuggableAttributeAssemblyTitleAttributeIteratorStateMachineAttributeTargetFrameworkAttributeDebuggerHiddenAttributeAssemblyFileVersionAttributeAssemblyInformationalVersionAttributeAssemblyDescriptionAttributeCompilationRelaxationsAttributeAssemblyProductAttributeAssemblyCompanyAttributeRuntimeCompatibilityAttributeget_Valueset_Valueget_BoxedValueset_BoxedValueget_MinValueTryGetValueSetValueget_DefaultValueget_MaxValuevalueSafeSaveget_Liveset_LiveSetLiveget_ActiveAnyTreatmentBiasActiveGetActiveget_LastActiveset_LastActiveAdaptiveRemoveget_CurrentSqueeze_squeezeset_fontSizeIndexOfDefLastProcessedRefVaccinesRefAttributesRefdefOffassignedStaffget_LastIdleStaffset_LastIdleStaffstaffMathfUnpatchSelf_cfgget_ConfigModConfigGameAlgorithmsConfigconfigget_paddingset_padding_rebindingBepInEx.LoggingAllMatchingSystem.Runtime.VersioningLogWarningLiveTuningEnsureGroupingToStringNumPeopleUsingget_Logset_Log_logDebug_searchInfectionAddPatchEpidemicStartedPatchTreatmentOutcomePatchRoomJobScorePatchTrainingRatePatchLevelUpdatePatchAttributesManagerUpdatePatchTreatmentEstimatePatchVaccinateNoWastePatchNeedAttributePatchInfectionRemovePatchDiagnosisCertaintyNoStaffPatchDiagnosisCertaintyStaffPatchConfigBootstrapPatchHarmonyPatchMathMinWidthget_Lengthget_QueueLengthConfigGui_guifallbackTickEndVerticalBeginVerticalget_onNormalget_normalEndHorizontalBeginHorizontal_autoInterval_interval_tabBtnSelLabelget_labelget_Levellevelget_AllPatchAllResetAllApplyAll_allStixsworldHD.UngodlyAI.TPH.dll_scrollcolBoolget_Itemset_Itemget_ParentRoomItemSystemTrimNumStaffWorkingInRoomroomCustomget_bottomset_bottom_accumCycleEnumget_IsEnumBooleanget_IsOpen_openfnMinset_marginBepInPluginBaseUnityPluginGUISkinget_skinminget_LastRaisesThisSessionset_LastRaisesThisSession_chronicEscalationBepInEx.ConfigurationSystem.GlobalizationActionget_InteractionObjectInteractionget_SectionResetSectionshowSection_bySectionSystem.ReflectionsectionWindowFunctionget_DefinitionConfigDefinitionIllnessDefinitionGUILayoutOptionNotSupportedExceptionget_DescriptionConfigDescriptionButtonget_button_tabBtnIsDownGetKeyDownDiagnosisCalculationBreakdownTreatmentCalculationBreakdownFieldInfoModInfoCultureInfoLogInfoMemberInfo_chronicCapset_wordWrap_maxRaisePerStepClamp_tmpget_topset_topAssembly-CSharpLerpClearget_ToughLuckBalancer_headerHorizontalSliderIFormatProviderset_border_overpayBufferget_ChallengeManagerResearchManagerget_CharacterManagerAttributesManagerget_LoggerEpidemicHelperJobAssignHelperVaccinateCharactercharacterget_onHoverget_hoverDirNeedRateLayerDirTreatmentLayerDirStaffEnergyLayer_aggrdirTextAnchorset_textColor_hardcoreFloorIEnumeratorSystem.Collections.Generic.IEnumerable.GetEnumeratorSystem.Collections.IEnumerable.GetEnumerator.ctor.cctorPayRaiseDirectorDifficultyDirectorDefStrTreatmentSuccessBiasResolvedTreatmentBiasAbsSystem.Diagnostics_affNeedsSystem.Runtime.CompilerServicesDebuggingModesStixUngodlyAI.PatchesEnsureStylesget_NumberOfVaccines_bonusVaccinesGetVaccinesget_LastVaccinesset_LastVaccinesCharacterAttributesget_AcceptableValuesGetValuesDefsHideFlagsset_hideFlagsBindingFlagsSettingChangedEventArgsSampleKpisSetPixelsAccessToolsGameAlgorithmsget_LastStarvedRoomsset_LastStarvedRoomsget_AllRoomsContainsSystem.Collections_sectionsget_StaffMembersNeutraliseLayersApplyLayers_autoPerPassFieldRefAccessGAConfigAccessMinChanceOfSuccessget_Happinessget_LastAvgHappinessset_LastAvgHappinessget_Illnessget_Patients_statusConcat_affTreat_maxTreatTextureFormatAttributeFloatGetFloatSetFloatRectObject_target_quietSystem.Collections.IEnumerator.ResetRectOffsetget_leftset_leftHeight_demandWeightget_rightset_rightInitDeathChanceMult_vaccineMultTrainingRateMultStaffXpGainMultDiagnosisCertaintyMultGetResult__resultRoundToIntCeilToIntSetIntToLowerInvariantPatientpatientset_alignmentEnvironmentTreatmentSystem.Collections.Generic.IEnumerator.CurrentSystem.Collections.IEnumerator.CurrentSystem.Collections.Generic.IEnumerator.get_CurrentSystem.Collections.IEnumerator.get_Currentset_Current<>2__currentget_Countget_LastStaffCountset_LastStaffCountget_LastPatientCountset_LastPatientCount_starvedBoost_idleBoostScoreBoost_maxBoostKeyboardShortcutGUILayoutInputMoveNextset_richTextDrawEndScrollViewBeginScrollViewget_LastRaisedNowset_LastRaisedNowDragWindowDrawWindowget_windowBepInExMaxRelaxmaxMakeTex_bgTex_panelTexHarmonyPrefixHarmonyPostfixget_boxTypeDisplayDefaultDisplaySetFloatArrayget_Ready_stylesReadyget_KeyParseKey_byKeyget_GuiHotkeyPrettify_affEnergyResolvedStaffEnergy_maxEnergy_unstaffedOnly_gaApply0Harmony_harmonyMustCallDestroyOnDestroyGetDesiredSalaryGetSalarySetSalaryDrawEntryop_Equalityop_InequalityEntityCertaintyIsNullOrEmpty_StixsworldHD - Ungodly AI Overhaul (v1.2.0)MOD OFFA<color=#cccccc>holding %</color>?<color=#8affa0>easier %</color>?<color=#ff8a8a>harder %</color>kDirector: <b>{0}</b> {1} intensity <b>{2:F0}%</b>Y | Avg patient happiness <b>{0:F0}</b>; Staff morale <b>{0:F0}</b>S Patients <b>{0}</b> Staff <b>{1}</b>YLive multipliers -> need x<b>{0:F2}</b> =staff-energy x<b>{0:F2}</b> Itreatment <b>{0:+0.0;-0.0;0}</b> ptsgJob Helper: <b>ON</b> starved rooms <b>{0}</b> _idle staff <b>{0}</b> unmet demand <b>{1}</b>Job Helper: offEpidemic: <b>ACTIVE</b> infected <b>{0}</b> vaccines left <b>{1}</b>aPay Director: <b>ON</b> reviewed <b>{0}</b> =raises this session <b>{0}</b>Categories SearchReset this tab!Reset EVERYTHINGSave to .cfg Close[]   (off) <b>(ON)</b> 0.###<b> </b><> Rebindpress a key...M (unsupported control - edit in .cfg) [range .., default ] false true Single Int32Boolean Enum!KeyboardShortcut String/00 - General & DirectorMasterEnabledMaster on/off for the ENTIRE mod. When off, every behaviour patch becomes a pass-through and the game behaves 100% vanilla (no restart needed).!ConfigMenuHotkeyF6Key that opens/closes the in-game configuration window. Default F6. Use the in-game Rebind button or edit here.+ApplyBalanceOverridesIf true, the mod writes the balance values from sections 02-12 into the game's live balance table. Turn OFF to keep ONLY the need-rate/treatment/director patches and leave every other balance value vanilla.DirectorModeAdaptiveThe Dynamic Difficulty Director - a closed loop that watches your hospital and re-tunes pressure in real time. Off = director does nothing; only your manual settings apply. Relax = ONLY eases things when patients are struggling; never makes the game harder. Great for casual/builder play. Adaptive = rubber-bands difficulty up AND down to keep average patient happiness inside your target band. Hardcore = ratchets difficulty UP the better you perform; only backs off when you are about to fail. Custom = uses the Target/Band/Aggression sliders exactly as set, both directions.1Director_TargetHappiness_The average patient-happiness % the Adaptive/Custom director aims to hold. Lower = the director keeps the hospital tense and challenging; higher = it keeps things comfortable.%Director_BandWidth?Dead-zone (+/- %) around the target where the director does nothing. Wider = calmer, slower-reacting director; narrower = it corrects more eagerly and tightly.'Director_Aggression)How hard the director pushes per update when you're outside the band. Higher = snappy, dramatic swings in pressure; lower = gentle, gradual nudging./Director_UpdateInterval3Seconds (real time) between director re-evaluations. Lower = reacts faster but samples noisier data; higher = smoother and cheaper but slower to respond./Director_MaxNeedSqueezeEMax extra patient-need pressure the director may add at full intensity, as a fraction (0.6 = up to +60% faster needs). 0 disables need pressure from the director.3Director_MaxEnergySqueezeKMax extra staff-energy drain the director may add at full intensity (0.5 = up to +50% faster tiring). Makes staffing/breaks the bottleneck when the game is too easy.5Director_MaxTreatmentSwingmMax treatment-success swing (percentage points) the director may apply. When easing it ADDS success %, when squeezing it SUBTRACTS - directly moving your cure rate toward the target.)Director_AffectNeedseAllow the director to modulate patient need decay.+Director_AffectEnergyeAllow the director to modulate staff energy drain.1Director_AffectTreatmentqAllow the director to modulate treatment success chance./01 - Patient Need Rates7Patient_AllNeeds_MultiplierMaster multiplier applied on TOP of every individual patient need rate below. 1.0 = vanilla speed. Higher = this need builds up FASTER so patients must seek relief more often (more pressure, more litter/queues); lower = slower and more forgiving.'Patient_Hunger_RateHow fast patients get HUNGRY (drives them to food). 1.0 = vanilla speed. Higher = this need builds up FASTER so patients must seek relief more often (more pressure, more litter/queues); lower = slower and more forgiving.'Patient_Thirst_RateHow fast patients get THIRSTY (drives them to drinks). 1.0 = vanilla speed. Higher = this need builds up FASTER so patients must seek relief more often (more pressure, more litter/queues); lower = slower and more forgiving.'Patient_Toilet_RateHow fast the BLADDER fills (drives toilet trips). 1.0 = vanilla speed. Higher = this need builds up FASTER so patients must seek relief more often (more pressure, more litter/queues); lower = slower and more forgiving.)Patient_Boredom_RateHow fast patients get BORED while waiting (drives them to entertainment). 1.0 = vanilla speed. Higher = this need builds up FASTER so patients must seek relief more often (more pressure, more litter/queues); lower = slower and more forgiving.'Patient_Litter_RateHow fast the urge to DROP LITTER builds (more litter = more janitor work). 1.0 = vanilla speed. Higher = this need builds up FASTER so patients must seek relief more often (more pressure, more litter/queues); lower = slower and more forgiving.'Patient_Nausea_RateHow fast NAUSEA builds for queasy patients (drives them to be sick - mess for janitors). 1.0 = vanilla speed. Higher = this need builds up FASTER so patients must seek relief more often (more pressure, more litter/queues); lower = slower and more forgiving.)Patient_Hygiene_RateHow fast a patient's personal HYGIENE degrades (low hygiene spreads and hurts hospital rating). 1.0 = vanilla speed. Higher = this need builds up FASTER so patients must seek relief more often (more pressure, more litter/queues); lower = slower and more forgiving.1Patient_Health_DrainRateQHow fast HEALTH drains while a patient is ill and untreated. Higher = patients can DIE if you are slow; lower = very forgiving. 1.0 = vanilla speed. Higher = this need builds up FASTER so patients must seek relief more often (more pressure, more litter/queues); lower = slower and more forgiving.1Patient_Temperature_RategHow quickly patients react to being too hot/cold. Higher = temperature complaints swing in fast; lower = they tolerate bad climate longer. 1.0 = vanilla speed. Higher = this need builds up FASTER so patients must seek relief more often (more pressure, more litter/queues); lower = slower and more forgiving.E02 - Patient Behaviour & Happiness3PatientLowHealthThreshold!PatientLowHealth5Health % below which a patient is flagged 'critically ill' (shows warning, prioritised). Higher = patients panic sooner; lower = they tough it out longer.9PatientLowHappinessThreshold'PatientLowHappiness%Happiness % below which a patient is flagged unhappy. Higher = the game nags you earlier about morale; lower = patients suffer quietly for longer.;PatientWaitForNewRoom_Seconds3PatientWaitForNewRoomTimeHow long (game seconds) a patient will wait for a required room to exist/free up before giving up. Higher = far more patient/forgiving crowds; lower = they rage-quit quickly if you lack rooms./PatientWaitLong_Seconds'PatientWaitLongTime1The 'long' patience timer used for build-it-yourself waits (e.g. waiting for a diagnosis room to be built). Higher = extremely tolerant; lower = strict.=PatientBetterRoomCheck_Seconds5PatientBetterRoomCheckTimeqHow often a queuing patient re-evaluates whether a better/closer room opened up. Lower = smarter, more reactive re-routing (can cause queue shuffling); higher = they commit to a queue.?MaxTimeWaitForReception_SecondsQMaxTimeVisitorsWaitForReceptionInSecondsGHow long a new visitor waits for a free receptionist before leaving in a huff. Higher = covers reception bottlenecks; lower = punishes understaffed reception hard.'UrgentNeedThresholdNeed level at which a patient drops everything to satisfy it (will leave a queue to find a toilet, etc.). Lower = characters interrupt themselves over needs more often; higher = they hold on and stay in queues.5OpportunisticNeedThresholdSNeed level at which a patient will TOP UP a need if something convenient is nearby. Lower = they wander to satisfy needs constantly; higher = only when genuinely needed.+CureHappinessIncrease=CharacterCureHappinessIncreaseHappiness bump a patient gets when CURED. Higher = cured patients leave delighted (great reputation); lower = curing barely moves the needle.3UnderChargeHappinessBonus=CharacterUnderChargedHappinessHappiness bonus when you charge LESS than a treatment is worth. Higher = undercutting buys big goodwill; lower = generosity is barely noticed.5OverChargeHappinessPenalty;CharacterOverChargedHappiness;Happiness penalty when you OVERCHARGE for treatment (negative). More negative = price-gouging tanks morale fast; closer to 0 = patients tolerate high prices.7ChargeHappinessBalancePointACharacterChargedHappinessBalanceoMoney scale controlling how quickly over/undercharge happiness saturates. Higher = even big price differences move happiness gently; lower = small differences swing happiness sharply.=MinHappinessToAcceptOverchargeECharacterMinHappinessForOverchargeUIf happiness is below this AND you overcharge, the patient refuses to pay and leaves. Higher = unhappy patients walk out more readily; lower = they grudgingly pay anyway.+ChanceOfNeedsIdleAnim#ChanceOfNeedsIdleEChance (%) a character plays a needs-related idle fidget. Purely flavour/animation variety - no balance impact. Higher = more visible 'I need the loo' animations./ChanceOfIllnessIdleAnim'ChanceOfIllnessIdleChance (%) a character plays an illness-symptom idle fidget. Flavour only. Higher = more visible coughing/symptom animations in queues.;03 - Patient Routing & Queues5Routing_QueueLengthPenalty)RoomScoreQueueLengthHow strongly a long queue pushes patients to pick a DIFFERENT room of the same type. Higher = patients spread themselves evenly across duplicate rooms (less clumping); lower = they pile into the nearest one.9Routing_QueuePositionPenalty-RoomScorePositionScore=How much your current spot in a queue discourages switching queues. Higher = patients stay put once queued; lower = they hop queues looking for shorter lines./Routing_DistancePenalty/RoomScoreDistanceFactoroHow much walking distance weighs in room choice. Higher = patients strongly prefer the NEAREST suitable room (less cross-hospital trekking, better flow); lower = they ignore distance.9Routing_UnstaffedRoomPenalty1RoomScoreNotFullyStaffed[Penalty applied to rooms that aren't fully staffed when choosing where to go. Higher = patients avoid unstaffed rooms (smarter); lower = they queue at empty rooms and stall.3Routing_BrokenRoomPenalty5RoomScoreRoomNotFunctional%Penalty for rooms that aren't currently functional (broken machine, etc.). Higher = patients route around broken rooms; lower = they wait at them.1Routing_MaxQueueDistance!MaxQueueDistanceKMaximum distance a person will tolerate to a need-satisfying queue. Higher = they will trek across the hospital for amenities; lower = they only use very close ones.9Routing_MaxRoomQueueDistance)MaxRoomQueueDistanceAMaximum distance a patient will accept to join a treatment/diagnosis room queue. Higher = fewer 'no reachable room' rage-quits; lower = stricter layout demands.9Routing_GoingToQueueDistance)GoingToQueueDistanceDistance at which a character is considered 'arriving' at a queue and locks in. Mostly internal; tweak only if you see queue-snapping oddities.ERouting_QueueUnattractiveThreshold5QueueUnattractiveThreshold{Attractiveness score below which a queue area is considered unpleasant (affects happiness while queuing). Lower = patients tolerate ugly queue spots; higher = they get grumpy in drab areas.1Routing_FreeMachineBonus;NeedScoreInteractionAvailableScore multiplier favouring need-machines that are FREE right now (lower score = more attractive). Lower = patients strongly prefer immediately-usable machines; higher = they don't care if it's busy.1Routing_NeedQueuePenalty=NeedScoreQueueLengthMultiplier9How much a queue on a need-machine deters patients from choosing it. Higher = they avoid busy vending/toilets and spread out; lower = they queue regardless.ARouting_NeedDifferentRoomPenaltyENeedScoreInDifferentRoomMultiplierKPenalty for satisfying a need in a different room than the one they're using. Higher = patients prefer to stay put and use local amenities; lower = they roam freely.+Search_Urgent_Default3UrgentSearchRadiusDefaultURGENT search radius (patient is desperate). Higher = they'll travel far across the hospital to fix this need rather than suffer/quit; lower = they only look very locally and may rage-quit if nothing is near.%Search_Urgent_Food-UrgentSearchRadiusFoodFood/drink URGENT search radius (patient is desperate). Higher = they'll travel far across the hospital to fix this need rather than suffer/quit; lower = they only look very locally and may rage-quit if nothing is near.)Search_Urgent_Toilet1UrgentSearchRadiusToiletToilet URGENT search radius (patient is desperate). Higher = they'll travel far across the hospital to fix this need rather than suffer/quit; lower = they only look very locally and may rage-quit if nothing is near.+Search_Urgent_Boredom3UrgentSearchRadiusBoredomBoredom URGENT search radius (patient is desperate). Higher = they'll travel far across the hospital to fix this need rather than suffer/quit; lower = they only look very locally and may rage-quit if nothing is near.)Search_Urgent_Litter1UrgentSearchRadiusLitterLitter-bin URGENT search radius (patient is desperate). Higher = they'll travel far across the hospital to fix this need rather than suffer/quit; lower = they only look very locally and may rage-quit if nothing is near.%Search_Opp_DefaultAOpportunisticSearchRadiusDefaultAOPPORTUNISTIC search radius (just topping up). Higher = patients wander further to pre-emptively satisfy needs; lower = they only grab very nearby conveniences.Search_Opp_Food;OpportunisticSearchRadiusFoodWFood/drink OPPORTUNISTIC search radius (just topping up). Higher = patients wander further to pre-emptively satisfy needs; lower = they only grab very nearby conveniences.#Search_Opp_Toilet?OpportunisticSearchRadiusToiletOToilet OPPORTUNISTIC search radius (just topping up). Higher = patients wander further to pre-emptively satisfy needs; lower = they only grab very nearby conveniences.%Search_Opp_BoredomAOpportunisticSearchRadiusBoredomQBoredom OPPORTUNISTIC search radius (just topping up). Higher = patients wander further to pre-emptively satisfy needs; lower = they only grab very nearby conveniences.#Search_Opp_Litter?OpportunisticSearchRadiusLitterWLitter-bin OPPORTUNISTIC search radius (just topping up). Higher = patients wander further to pre-emptively satisfy needs; lower = they only grab very nearby conveniences.504 - Staff Energy & Breaks-Staff_Energy_DrainRateHow fast staff get TIRED. When energy hits the break threshold they leave to rest. 1.0 = vanilla. Higher = staff lose this FASTER, forcing more breaks/visits (harder to keep rooms staffed); lower = staff stay on the job longer.%Staff_Boredom_RateUHow fast staff get bored. 1.0 = vanilla. Higher = staff lose this FASTER, forcing more breaks/visits (harder to keep rooms staffed); lower = staff stay on the job longer.#Staff_Hunger_RateWHow fast staff get hungry. 1.0 = vanilla. Higher = staff lose this FASTER, forcing more breaks/visits (harder to keep rooms staffed); lower = staff stay on the job longer.#Staff_Thirst_RateYHow fast staff get thirsty. 1.0 = vanilla. Higher = staff lose this FASTER, forcing more breaks/visits (harder to keep rooms staffed); lower = staff stay on the job longer.#Staff_Toilet_RateaHow fast staff need the toilet. 1.0 = vanilla. Higher = staff lose this FASTER, forcing more breaks/visits (harder to keep rooms staffed); lower = staff stay on the job longer.%Staff_Hygiene_RatecHow fast staff hygiene degrades. 1.0 = vanilla. Higher = staff lose this FASTER, forcing more breaks/visits (harder to keep rooms staffed); lower = staff stay on the job longer.5Staff_BreakEnergyThresholdStaffEnergyLowIEnergy % at which a staff member REQUESTS a break. Higher = staff rest early and often (rooms empty more); lower = they grind until nearly exhausted before resting.=Staff_BreakDurationMin_Seconds+StaffBreakDurationMinShortest break length (game seconds), used when the room's Work/Life slider favours work. Higher = even short breaks keep staff away longer.=Staff_BreakDurationMax_Seconds+StaffBreakDurationMax Longest break length, used when the slider favours rest. Higher = relaxed staff vanish for ages; lower = breaks are quick pit-stops.5Staff_MaxIdleOnJob_Seconds+MaxTimeStaffIdleOnJobIHow long staff will stand idle in a job before the AI reconsiders/re-assigns them. Lower = snappier re-tasking of loitering staff; higher = they wait around longer.5Need_StartDelayMin_Seconds+MinDelayNeedStartTime7Minimum reaction delay before a character acts on a found need (humanises behaviour). Higher = more lifelike hesitation; lower = instant robotic reactions.5Need_StartDelayMax_Seconds+MaxDelayNeedStartTime Maximum reaction delay before acting on a need. Higher = more varied, dawdling behaviour; lower = everyone reacts almost immediately.IStaff_MaintenanceJobDuration_Seconds7StaffMaintenanceJobDurationBase time a janitor spends on a maintenance job. Lower = machines get fixed faster (less downtime); higher = repairs drag on.O05 - Staff Morale, Salary & Resignation3Staff_Happiness_DriftRateYMultiplier on how fast staff happiness CHANGES over time from conditions. Higher = morale swings fast both ways (volatile staff); lower = very stable morale. 1.0 = vanilla.7Staff_LowHappinessThreshold5StaffLowHappinessThresholdKHappiness % below which staff start threatening to resign. Higher = staff get fed up and threaten to quit earlier; lower = they put up with a lot before complaining.=Staff_ResignationCheck_SecondsEStaffResignationFrequencyInSecondsIHow often the game checks whether an unhappy staff member actually resigns. Higher = resignations are rare/slow (forgiving); lower = unhappy staff walk out quickly.=Staff_MaxDesiredSalaryFraction!MaxDesiredSalarygHow much extra (as a fraction of market rate) staff can demand at the top end. Higher = pay reviews get expensive and demanding; lower = staff are cheap and content with base pay./06 - Staff Job DirectorJob_QueueScoreJobQueueScore{Core weight: how strongly a room's QUEUE pulls staff toward working it. Higher = staff aggressively chase the busiest rooms (great for throughput); lower = they distribute by other factors.#Job_PriorityBoost+JobPriorityScoreBoost[Multiplier applied to player-flagged HIGH-PRIORITY jobs and emergencies. Higher = priority flags dominate everything (staff drop all else); lower = priority is a mild nudge.'Job_DistanceFalloff-JobDistanceMagicNumberoSquared-distance at which a job's appeal halves. Higher = staff happily walk far for jobs (whole-hospital coverage); lower = they strongly prefer nearby work and ignore distant rooms.)Job_MinDistanceScore'JobMinDistanceScoreOJobs closer than this are treated as equally near, preventing staff from flip-flopping between two adjacent jobs. Higher = more 'good enough, just pick one' stability.1Job_EmptyQueueMultiplier9JobEmptyQueueScoreMultiplierGHow appealing it is to man a room with NO queue. Higher = staff pre-position in empty rooms ready for patients; lower = they only go where there's already a queue.;Job_AlreadyAssignedMultiplier9JobAlreadyAssignedMultiplier?Discount applied to a job another staffer already covers. Lower = staff strongly avoid doubling up (better spread); higher = multiple staff may crowd one room.1Job_BrokenRoomMultiplierGJobNonFunctionalRoomScoreMultiplierHow appealing a non-functional room's job is. Lower = staff ignore broken rooms until fixed; higher = they'll stand in them pointlessly.#Job_SameRoomBoost5JobSameRoomAsJobScoreBoostEBonus for jobs in the room the staffer is already in. Higher = staff finish everything in their current room before moving (less walking); lower = they roam more.'Job_StaffDropRadius%JobStaffDropRadius?When you hand-drop a staffer, jobs within this radius are considered for them. Higher = dropping a janitor sweeps a wider area; lower = very precise placement.=Job_FailedStartTimeout_Seconds/FailedtoStartJobTimeOutACooldown before a staffer retries a job they couldn't start. Lower = quick retries (snappier but can thrash); higher = they back off longer before trying again.Job_FireScoreJobFireScore3Base appeal of FIRE-fighting jobs. Higher = staff sprint to fires above all else; lower = fires get dangerously ignored. Keep high unless you want chaos.%Job_AmbulanceScore#JobAmbulanceScoreBase appeal of AMBULANCE/emergency jobs. Higher = emergencies are handled instantly; lower = emergency patients wait.+Job_ExtinguisherBoost7JobFireHasExtinguisherBoostExtra appeal of a fire job for staff already carrying an extinguisher. Higher = the right person reliably grabs the fire.)Job_MaintenanceScore5JobMaintenanceBaseJobScoreBase appeal of machine MAINTENANCE. Higher = janitors prioritise upkeep (fewer breakdowns); lower = machines decay before anyone bothers.3Job_MaintenanceStickiness;JobMaintenanceCurrentJobBoostBonus to keep finishing the current maintenance job. Higher = janitors see a repair through; lower = they get distracted mid-fix.!Job_UpgradeScoreJobUpgradeScoreAppeal of machine UPGRADE jobs. Higher = upgrades happen promptly; lower = they sit in the backlog.Job_GhostScoreJobGhostScoreAppeal of GHOST-capturing jobs (deceased patients). Higher = janitors bust ghosts fast; lower = ghosts haunt longer and spook patients.#Job_ResearchScore!JobResearchScorePer-project appeal of staffing the RESEARCH room. Higher = research is strongly prioritised; lower = doctors prefer treating over researching.!Job_ServiceScoreJobServiceScoreAppeal of SERVICE jobs (reception desks, kiosks). Higher = assistants man service points eagerly; lower = service points sit empty.%Job_MarketingScore#JobMarketingScoreAppeal of staffing the MARKETING room when a campaign is assigned. Higher = campaigns run reliably; lower = marketing lags.CService_ReceptionDuration_Seconds;JobAssistantReceptionDurationBase time to process one visitor at reception. Lower = reception clears faster (less entry congestion); higher = slower check-in.;Service_KioskDuration_Seconds3JobAssistantKioskDurationBase time to serve one customer at a kiosk. Lower = quicker service; higher = longer kiosk queues.-Job_RoomJobIndexMult_1QWeight of the 2nd-most-important job in a multi-job room (advanced). Higher = secondary jobs in busy rooms still attract staff; lower = staff focus only on the top job.-Job_RoomJobIndexMult_2uWeight of the 3rd job slot in a multi-job room (advanced).-Job_RoomJobIndexMult_3wWeight of the 4th+ job slot in a multi-job room (advanced).707 - Staff Training & Skill'TrainingRate_EnableEnable the training-throughput multiplier below. Leave OFF to use vanilla training speed./TrainingRate_MultiplierMultiplies how fast classroom training completes (covers both learning AND teaching speed). Higher = staff qualify much faster (cheaper to upskill); lower = training is a long-term investment. Requires the toggle above.-StaffXP_GainMultiplier3Multiplies passive XP/skill that staff earn by working. Higher = staff rank up from experience quickly; lower = on-the-job growth is slow. 1.0 = vanilla.7TrainingSessionWait_Seconds/TrainingSessionWaitTimeCHow long a trainer waits for trainees before ending a session. Higher = sessions are more forgiving of stragglers; lower = sessions end promptly if no one shows.508 - Treatment & Diagnosis+ToughLuck_Sensitivity;ToughLuckBalancingSensitivityStrength of the game's hidden 'luck balancer' that nudges treatment rolls toward their true odds (a pity timer). Higher = streaks of bad/good luck are corrected hard (very fair, predictable); lower = outcomes are more purely random and swingy; 0 = pure RNG.)TreatmentBias_Enable Enable a flat bonus/penalty to EVERY treatment's success chance (shown honestly in the UI estimate too). Leave OFF for vanilla odds.+TreatmentBias_PercentcPercentage points added to every treatment's success chance. Positive = kinder outcomes / higher cure rate; negative = brutal, more failed treatments. Requires the toggle above.%DeathChance_EnableEnable scaling of the chance a FAILED treatment kills the patient. Leave OFF for vanilla death odds.-DeathChance_MultiplierMultiplies the per-illness chance-of-death when a treatment fails. 0 = patients never die from failed treatments (they just leave uncured); 1 = vanilla; higher = deadlier hospital. Requires the toggle above.3DiagnosisCertainty_EnableEnable scaling of diagnosis certainty gained per scan. Leave OFF for vanilla diagnosis pace.;DiagnosisCertainty_MultiplierMultiplies the certainty each diagnosis machine contributes. Higher = illnesses are identified in fewer visits (faster patient flow, less wandering); lower = diagnosis takes many rooms. Requires the toggle above./Treatment_StaffSkillMin-TreatmentStaffSkillMinLower anchor of the staff-skill contribution scale for treatment. Advanced - widening this range makes raw skill matter less per point./Treatment_StaffSkillMax-TreatmentStaffSkillMaxiUpper anchor of the staff-skill scale for treatment. Higher = skill scales further before maxing out (skilled staff keep improving outcomes); lower = skill caps its benefit sooner.+Treatment_UpgradesMin5TreatmentUpgradesFactorMinLower anchor of the machine-upgrade contribution scale for treatment (advanced).+Treatment_UpgradesMax5TreatmentUpgradesFactorMax!Upper anchor of the machine-upgrade scale for treatment. Higher = upgrades keep boosting cure odds further; lower = upgrade benefit caps sooner.509 - Environment & Hygiene/Hygiene_CharacterWeight9HygieneRatingCharacterWeightHow much DIRTY PEOPLE count toward your hospital's hygiene rating vs the environment. Higher = grubby patients/staff drag the rating down hard (sinks matter more); lower = only the building's cleanliness counts.3Hygiene_EnvironmentWeight=HygieneRatingEnvironmentWeightmHow much the BUILDING's cleanliness (litter, bins, hand-sanitiser coverage) counts toward hygiene rating. Higher = janitorial coverage dominates the score; lower = it barely matters.%Thermal_ComfortMinAEnvironmentThermalComfortMinimum5Coldest 'comfortable' point on the temperature map (negative = cool). Lower = people tolerate colder rooms (cheaper heating); higher = they demand warmth.%Thermal_ComfortMaxAEnvironmentThermalComfortMaximum!Hottest 'comfortable' point on the temperature map. Higher = people tolerate hotter rooms (cheaper cooling); lower = they demand cooling sooner.7Hygiene_ContagionMultiplier?PersonToPersonHygieneMultiplierkHow much hygiene transfers between people standing close (queues). Higher = dirtiness spreads fast through crowds (hand-sanitiser becomes vital); lower = little cross-contamination./10 - Machines & Hazards9Machine_MaintenanceThreshold1ItemMaintenanceThresholdQWear % at which a machine flags that it NEEDS maintenance. Higher = machines must get quite worn before a janitor is called (more risk); lower = early, cautious upkeep.=Machine_FullyRepairedThreshold5ItemFullyRepairedThresholdSWear % at/below which a machine counts as fully repaired (janitor stops). Lower = janitors fix machines almost perfectly; higher = they leave sooner with wear remaining.1Machine_SmokingThreshold)ItemSmokingThreshold#Wear % at which a neglected machine starts SMOKING (last warning before fire). Higher = less warning time; lower = earlier, safer smoke warnings.+Machine_FireThreshold-ItemSetOnFireThresholdcWear % at which a machine CATCHES FIRE. Higher = machines must be truly neglected to ignite (forgiving); lower = fires break out readily. Keep a gap above the smoking threshold.11 - Economy7Economy_SellValueMultiplier3GlobalSellValueMultiplier9Multiplies the refund you get when selling rooms/items. Higher = generous refunds (low-risk experimentation); lower = selling is a real loss. 1.0 = vanilla.7Economy_SecondsPerInGameDaySecondsPerDay9Real seconds per in-game DAY at 1x speed - the master clock for salaries, bills, day-rated events and overall pace. Higher = the whole game runs SLOWER/calmer (more time to react, slower money); lower = frantic, fast-forward feel. Change cautiously - it touches everything time-based.%12 - Navigation AI7Nav_FailFlagTimeout_SecondsNavFailTimeOutSeconds a 'couldn't path there' flag lingers on a character. Lower = they retry pathing sooner; higher = they wait longer before trying again.1Nav_WarningAfterFailures5NavFailWarningTriggerCount#How many path failures before the game warns you about an unreachable area. Lower = earlier 'patients can't reach X' alerts; higher = fewer nags.1Nav_FailCooldown_Seconds'NavFailCoolDownTime?How long a character pauses its behaviour after a path failure before resuming. Lower = quick recovery from blocked paths; higher = they stand confused longer.GNav_GhostCaptureFailTimeout_Seconds5GhostCaptureNavFailTimeOutPath-failure timeout specific to ghost-capture chases. Higher = janitors keep trying to reach a fleeing ghost longer.!13 - Performance7Perf_OverrideAttributeBatchEnable the custom attribute-processing batch size below. Leave OFF to use the game's default (10 per frame)./Perf_AttributesPerFrame1How many characters' needs are recalculated each frame. The game spreads this work out; raising it makes needs update more SMOOTHLY/accurately on huge hospitals at a small CPU cost, lowering it saves CPU but needs update more coarsely. Sweet spot 10-32. Requires the toggle above.'Perf_VerboseLoggingWrite extra diagnostic lines to the BepInEx log/console. Handy for troubleshooting; leave OFF normally for best performance and a clean log.-14 - Job Assign Helper!JobHelper_EnableMaster switch for the Ungodly Job Assign Helper. When ON, the mod actively steers the game's OWN staff-assignment AI toward rooms that have a queue but too few working staff, so under-served rooms get covered fast. It never replaces the game's logic - it only makes staff smarter about where they're needed - so it stays fully compatible. Turn OFF for vanilla assignment behaviour.1JobHelper_UpdateIntervalSeconds (real time) between the helper's room scans. Lower = it notices a newly-starved room and reacts faster (slightly more CPU); higher = calmer, cheaper, a touch slower to respond. 1-3 is the sweet spot.5JobHelper_StarvedRoomBoostHow hard the helper pulls staff toward a fully-starved room (one with a queue but NO staff working it). This is the maximum score multiplier; 1.0 = no help, 2.5 = a starved room is ~2.5x more attractive to free staff, higher = staff drop everything to cover empty rooms. Partially-staffed rooms get a proportionally smaller share of this.-JobHelper_DemandWeightHow much each waiting/using patient counts as 'demand' when judging if a room is under-served. Higher = the helper cares more about long queues and reacts strongly to busy rooms; lower = it mainly cares whether anyone is working the room at all.1JobHelper_IdleStaffBoostExtra pull applied when the staffer being considered is currently IDLE (holding no job). Higher = idle staff are strongly preferred to fill starved rooms (so busy staff aren't yanked off useful work); 1.0 = idle and busy staff are treated the same.7JobHelper_ChronicEscalationHow much extra pull builds up the LONGER a room stays starved, so a room that's been ignored eventually wins attention no matter what. 0 = no escalation (only current demand matters); higher = neglected rooms ramp up in priority more aggressively over time.7JobHelper_ChronicCapSecondsHow many seconds of continuous starvation it takes for the escalation above to reach full strength. Lower = escalation maxes out quickly (impatient); higher = it builds slowly over a longer neglect period.%JobHelper_MaxBoost-Hard ceiling on the helper's total score multiplier (starvation x chronic x idle combined). This is a safety cap that prevents runaway boosts and staff thrashing between rooms. Raise only if you want extremely aggressive coverage; the default keeps assignment snappy but stable.7JobHelper_UnstaffedOnlyModeMost conservative mode: when ON, the helper ONLY boosts rooms that have ZERO staff working them, and ignores merely under-staffed rooms. Use this if you want a gentle 'make sure nothing sits completely empty' safety net rather than full load-balancing.;JobHelper_RespectFullyStaffedWhen ON (recommended), the helper never boosts a room that is already fully staffed - preventing staff from over-piling into one room. Turn OFF only if you deliberately want extra hands to keep flowing into busy fully-staffed rooms.)15 - Epidemic HelperEpidemic_Enable Master switch for the Ungodly Epidemic Helper. When ON, it tips epidemic challenges in your favour using the game's own vaccination system (it does nothing at all when no epidemic is running, so it's safe to leave on). Turn OFF for vanilla epidemic difficulty.5Epidemic_VaccineMultiplierMultiplies the size of the starting vaccine pool when an epidemic begins. 1.0 = vanilla vaccine count, 2.0 = double the vaccines (lots of breathing room), higher = epidemics become very forgiving. Combine with the flat bonus below.-Epidemic_BonusVaccines[Flat number of EXTRA vaccines added on top of the multiplier when an epidemic begins. Great for guaranteeing a comfortable buffer even on small outbreaks. 0 = no flat bonus.3Epidemic_NoWastedVaccinesWhen ON, any vaccine you spend on a patient who turns out NOT to be infected is instantly refunded - so misclicks and guesswork cost you nothing. Turn OFF for vanilla behaviour where every dose is consumed.-Epidemic_AutoVaccinatePOWERFUL / optional. When ON, the helper automatically vaccinates patients it KNOWS are infected (tracked from the live simulation) while vaccines remain - clearing outbreaks hands-free. It works through the game's own vaccinate method and treats only a few patients per pass so it stays gradual and compatible. Off by default; enable for fully-automated epidemic response.=Epidemic_AutoVaccinateIntervalSeconds (real time) between auto-vaccinate passes (only used when Auto Vaccinate is ON). Lower = clears outbreaks faster; higher = slower, more deliberate. The per-pass cap below keeps each pass small.;Epidemic_AutoVaccinatePerPassHow many infected patients the auto-vaccinator treats per pass (only used when Auto Vaccinate is ON). Lower = very gradual clearing; higher = aggressive. Kept small by default so it never feels like an instant mass-cure.916 - Auto Pay Raise Director%PayDirector_Enable_Master switch for the real-time Automatic Pay Raise Director. When ON, it keeps your staff paid by automatically raising under-paid staffers toward their desired salary in real time, using the game's own pay system - no more babysitting the pay-review screen. It NEVER lowers pay and only ever acts on under-paid staff. OFF by default because it spends your money automatically; turn it on when you want hands-free staff retention.5PayDirector_UpdateIntervalkSeconds (real time) between pay reviews. Lower = staff are topped up almost immediately when they fall behind (more responsive); higher = calmer, cheaper, reviews happen less often.5PayDirector_RaiseThresholdHow far below their desired salary a staffer must fall before the director steps in, as a fraction. 0 = raise the moment they're under-paid at all; 0.1 = wait until they're ~10% under (about when they'd start getting Unhappy); higher = let pay slip further before acting.3PayDirector_OverpayBufferHow far ABOVE their desired salary to set pay when raising, as a fraction. 0 = pay exactly what they want (Satisfied); 0.1-0.2 = pay a little over so they're outright Happy and won't ask again for a while; higher = more goodwill but a bigger wage bill.7PayDirector_MaxRaisePerStep=Safety cap on how much a single staffer's salary can jump in one review, as a fraction of their current pay. 1.0 = may up to double in one step (effectively instant); 0.25 = raises are gradual (max +25% per review) to smooth out your wage bill; protects against sudden expensive spikes./PayDirector_AutoPromoteWhen ON, the director also automatically promotes any staffer who has become eligible (max XP + fully trained), using the game's own promotion - handy for fully hands-free staff progression. Off by default so you keep manual control of promotions and their costs.+PayDirector_QuietModeWhen ON, raises are applied silently in the background (no per-raise pop-up or sound) so an active director doesn't spam notifications. Turn OFF if you'd like to be notified each time the director adjusts someone's pay.[StixUngodlyAI][Director] mode={0} avgHappy={1:F1} target={2} squeeze={3:F2} kneed x{0:F2} energy x{1:F2} treat {2:+0.0;-0.0;0} pts#_numberOfVaccines[Captured live GameAlgorithmsConfig instance: yGameAlgorithmsConfig field not found (game version drift?): Set  failed: =com.stixsworldhd.tph.ungodlyaia{0} v{1} loaded. Press {2} in-game to configure.kStixsworldHD Ungodly AI, Job, Epidemic & Pay Overhaul 1.2.0MAuthor: StixsworldHD (StixsmasterHD4k))Configuration saved._attributes_lastProcessed1JobIndexScoreMultipliers*۷+EEW߫     e QM  aM Q U  e eeQMMEME IEM E  EM  M = =  Q   q U Y   A  ] ] UY]Yeeye Y YYm  m55i=m   aMQMM =m =m mm   =mm 99m m5 e m eee =m   m    qq  q   u  u uuyy }M }}MQM  E      E  EE  EE     E  0E EE     I      I  0    . EI E   EE  IM}M}  0     e   m E Ye   E   mE%!E%E% ! !E% ! 5)19   5)5  9   M xz\V4W.00 - General & Director.01 - Patient Need RatesD02 - Patient Behaviour & Happiness:03 - Patient Routing & Queues404 - Staff Energy & BreaksN05 - Staff Morale, Salary & Resignation.06 - Staff Job Director607 - Staff Training & Skill408 - Treatment & Diagnosis409 - Environment & Hygiene.10 - Machines & Hazards11 - Economy$12 - Navigation AI 13 - Performance,14 - Job Assign Helper(15 - Epidemic Helper816 - Auto Pay Raise Directord__30_com.stixsworldhd.tph.ungodlyai5StixsworldHD Ungodly AI, Job, Epidemic & Pay Overhaul1.2.0k[TH20.GameAlgorithms, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null InitialisefTH20.CharacterModifierInfected, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=nullAddVTH20.Character, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=nullfTH20.CharacterModifierInfected, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=nullRemoveVTH20.Character, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=nullv^TH20.ChallengeEpidemic, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=nullOnChallengeStartedv^TH20.ChallengeEpidemic, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=nullVaccinateCharacterv[TH20.GameAlgorithms, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=nullCalculateRoomJobScore^RTH20.Level, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=nullUpdateVTH20.Character, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=nullGetAttributeMultipliereTH20.CharacterAttributes+Type, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=nullj^TH20.AttributesManager, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=nullUpdate[TH20.GameAlgorithms, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=nullCalculateTrainingPointLearnRate[TH20.GameAlgorithms, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null"CalculateEstimatedTreatmentOutcomez[TH20.GameAlgorithms, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=nullCalculateTreatmentOutcome[TH20.GameAlgorithms, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=nullGetDiagnosisCertaintyTTH20.Patient, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=nullQTH20.Room, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=nullRTH20.Staff, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null\TH20.ResearchManager, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null~[TH20.GameAlgorithms, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=nullGetDiagnosisCertaintyTTH20.Patient, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=nullQTH20.Room, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null\TH20.ResearchManager, Assembly-CSharp, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null2 $_CorDllMainmscoree.dll% 0HX4VS_VERSION_INFO?DVarFileInfo$Translation0StringFileInfo 000004b0mCommentsUngodly, vastly enhanced AI / behaviour / difficulty overhaul for Two Point Hospital. BepInEx 5 (x64, Mono).^CompanyNameStixsworldHD (StixsmasterHD4k)KFileDescriptionStixsworldHD Ungodly AI, Job, Epidemic & Pay Overhaul - Two Point Hospital0FileVersion1.2.0.0^InternalNameStixsworldHD.UngodlyAI.TPH.dll(LegalCopyright fOriginalFilenameStixsworldHD.UngodlyAI.TPH.dllVProductNameStixsworldHD.UngodlyAI.TPH0ProductVersion1.2.08Assembly Version1.2.0.0 D5