BetterFont
Troca a fonte renderizada do jogo por uma serifada (Times New Roman, com fallback Georgia/Liberation Serif) preservando cor, contorno e sombra dos textos. Sem alteracao de gameplay.
| Last updated | 9 hours ago |
| Total downloads | 2 |
| Total rating | 0 |
| Categories | Mods |
| Dependency string | DefRuivo_StolenRealmMods-BetterFont-1.0.1 |
| Dependants | 1 other package depends on this package |
This mod requires the following mods to function
BepInEx-BepInExPack
BepInEx pack for Mono Unity games. Preconfigured and ready to use.
Preferred version: 5.4.2305README
BetterFont
Mod BepInEx 5 para Stolen Realm que troca a fonte renderizada do jogo por uma serifada (Times New Roman, com fallback Georgia / Liberation Serif). Não altera gameplay.
- GUID:
com.gumatos.betterfont - Versão: 1.0.1
- Compatível com: Stolen Realm v1.3.1 (versão mais recente do jogo em 30/09/2026).
- Dependências: nenhuma além do BepInEx 5 (que o r2modman já instala no perfil).
O que ele faz
- Substitui a fonte de todos os textos TMP do jogo por um asset serifado — inclusive telas que abrem depois do boot (level up, tooltips, menus de configuração).
- Preserva o estilo (cor de face, contorno e sombra): antes de trocar a fonte, as propriedades de estilo do material que o texto já usava são transportadas para o material por componente da fonte nova. Sem isso a troca apagava cor/contorno/sombra — era o defeito da 1.0.0.
- Preserva o efeito de material de QUALQUER origem — inclusive o que outro mod tenha aplicado naquele texto (contorno/halo, sombra). O texto continua recebendo a serifa e o efeito que já estava nele é reaplicado no material novo. Se o efeito em uso não puder ser reproduzido com fidelidade (textura de face, glow/bevel, shader incompatível), o texto não é tocado — melhor não mexer do que entregar meia cópia.
- Se você preferir o comportamento antigo (texto com material próprio, como os títulos e os números de combate do jogo, fica 100% intocado e não ganha a serifa), ligue
Estilo/PularTextosEstilizados— ver Configuração. - A fonte original do jogo entra como fallback do asset serifado: ícones, glifos e símbolos que a Times New Roman não tem continuam renderizando, sem virar quadradinho.
- A varredura roda com tempo real, então funciona mesmo com
timeScale = 0(é o caso dos menus do Stolen Realm, onde coroutines eInvokeRepeatingnunca disparam). - O updater é criado de forma preguiçosa, na primeira UI viva (gatilho em
OptionsManager.Localize). Criá-lo noAwakedo plugin não funciona: o jogo destrói o GameObject na primeira carga de cena. - Sem qualquer alteração de gameplay — só a aparência do texto muda.
O que ele NÃO faz
- Não altera gameplay — não muda valor, dano, regra nem balanceamento.
- Não modifica nenhum arquivo do jogo (nem save) e não deixa resíduo ao ser removido.
- Não traduz nem reescreve texto nenhum — troca só a face da fonte; o conteúdo continua sendo o original do jogo.
- Não escreve no material compartilhado de nenhum texto e nem no material de outro mod (só lê o material em uso, para copiar o estilo) — a cópia é sempre a instância por componente.
Por que a 1.0.0 quebrava o estilo (e o que mudou na 1.0.1)
Em TextMeshPro, texto.font = novaFonte não troca só o tipo de letra: o LoadFontAsset() do TMP descarta o material em uso e passa a usar o material do asset novo. Como a cor de face, o contorno e a sombra do jogo vivem no material, a troca de fonte apagava o estilo — o defeito aparecia ao entrar em combate ("quebra o estilo e a coloração das fontes").
Na 1.0.1 a varredura faz, nesta ordem:
- Captura o material em uso (
fontSharedMaterial) do componente antes de mexer. - Se
PularTextosEstilizados = true(escape, padrãofalse), o texto com material próprio não troca de fonte — visual original 100% intacto. - Senão, troca a fonte e copia as propriedades de estilo para o material por componente (
fontMaterial— instância só daquele texto), sempre testandoHasPropertyantes de cadaSet:- cor de face
_FaceColor,_FaceDilate; - contorno
_OutlineWidth,_OutlineSoftness,_OutlineColor+ keywordOUTLINE_ON; - sombra
_UnderlayColor,_UnderlayOffsetX/Y,_UnderlayDilate,_UnderlaySoftness+ keywordUNDERLAY_ON.
- cor de face
Essa cópia é o que faz o efeito aplicado por outro mod (ou pelo próprio jogo) sobreviver à troca de fonte: o que estava no material anterior daquele texto é reaplicado no material novo — a mesma regra para qualquer mod, sem um conhecer o outro.
Não se copia atlas/textura (_MainTex, _TextureWidth, _TextureHeight, _GradientScale, _ScaleRatio_*): isso pertence à fonte nova. Texturas de face (_FaceTex), bevel (_BumpMap) e as keywords GLOW_ON/BEVEL_ON não são transportadas — e quando o efeito em uso depende de um deles (ou de um shader incompatível), o texto não é tocado (falha-segura: em dúvida, nada pior que hoje). O log de diagnóstico diz, por texto, o que foi copiado e o que ficou de fora.
Configuração (BepInEx\config\com.gumatos.betterfont.cfg)
| Seção | Chave | Padrão | O que faz |
|---|---|---|---|
Estilo |
PreservarEstilo |
true |
Copia cor/contorno/sombra do material antigo para o material por componente da fonte nova. |
Estilo |
PularTextosEstilizados |
false |
false (padrão): troca a fonte também dos textos com material próprio e reaplica os efeitos que já estavam nele — é o que mantém o contorno/sombra aplicado por outro mod. true: escape, comportamento antigo — não troca a fonte de quem tem material próprio (visual original 100% intacto, sem serifa). |
Diagnostico |
LogDiagnosticoEstilo |
false |
Loga, no LogOutput.log, um bloco por texto tratado: objeto, fonte, material compartilhado, shader, o que foi copiado e o que não pôde ser transportado. |
O .cfg é lido no boot do jogo: mude os valores e reabra o jogo.
Convivência com outros mods que estilizam texto
Vale para qualquer mod que aplique efeito de material (contorno/halo, sombra) num texto de combate ou de qualquer tela: o BetterFont troca a fonte daquele texto e reaplica no material novo os efeitos que já estavam no material anterior — quem aplicou o efeito continua com ele, e o texto também ganha a serifa. Não há ordem obrigatória entre os mods: se o efeito for aplicado antes, o BetterFont o transporta; se for aplicado depois, o mod do efeito clona o material já serifado e o mantém. Nenhum dos dois precisa conhecer o outro.
Só quando o efeito não puder ser reproduzido com fidelidade (textura de face, glow/bevel, shader incompatível) o BetterFont deixa aquele texto intocado — e o Estilo/PularTextosEstilizados = true restaura o comportamento antigo para todos eles.
Instalar
Pelo r2modman (recomendado): instale este pacote no perfil do Stolen Realm — o r2modman coloca a DLL em BepInEx\plugins\BetterFont\.
Manual:
- Instale o BepInEx 5 x64 no jogo (ou dê "Start modded" uma vez no r2modman, que cria a pasta).
- Copie a pasta
BetterFontpara:
Deve ficar:%APPDATA%\r2modmanPlus-local\StolenRealm\profiles\Default\BepInEx\plugins\...\plugins\BetterFont\BetterFont.dll - Abra o jogo. No
LogOutput.logdeve aparecer:[Info :Better Font] Better Font carregado.
Como desfazer
Apague a pasta BepInEx\plugins\BetterFont\ (ou desabilite o pacote no r2modman) e abra o jogo de novo. A fonte original volta no próximo boot — o mod não modifica nenhum arquivo do jogo nem deixa resíduo.
Compilar do fonte
cd BetterFont
dotnet build
Saída: bin\Debug\netstandard2.1\BetterFont.dll
As DLLs de referência (BepInEx, Unity, Assembly-CSharp) vêm de ..\lib\ e nunca são distribuídas: a Assembly-CSharp.dll é propriedade do jogo.