Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
SurveyorMap
Client-side configurable HUD minimap for R.E.P.O. with optional safe enemy markers.
| Date uploaded | a month ago |
| Version | 1.0.1 |
| Download link | HiarlyScripter-SurveyorMap-1.0.1.zip |
| Downloads | 2112 |
| Dependency string | HiarlyScripter-SurveyorMap-1.0.1 |
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.2100README
🗺️ SurveyorMap
Minimapa persistente e client-side no HUD inferior esquerdo — espelha o mapa nativo do R.E.P.O. sem overlays falsos. Persistent client-side minimap in the bottom-left HUD — mirrors the native R.E.P.O. map with full fidelity.
Português
O SurveyorMap lê a câmera de mapa real do jogo e exibe um minimapa persistente no canto inferior esquerdo da tela durante o gameplay. Mesma geometria, mesmas cores e mesma fidelidade que o TAB — sem overlays falsos.
🎯 Funcionalidades
- 🗺️ Minimapa persistente — HUD inferior esquerdo, visível apenas durante o gameplay. Some nos menus e no lobby.
- 📷 Fidelidade nativa — lê a câmera de mapa real do jogo (
activeTexture). Mostra a geometria real das salas, marcadores nativos e fidelidade das paredes. M— pressione para mostrar/ocultar o minimapa sem afetar o TAB nativo.- 🛡️ TAB seguro — ao abrir o TAB, o minimapa persistente some automaticamente. O TAB não é afetado.
- 🎛️ Modo de edição F8 — cursor liberado e câmera suspensa automaticamente ao entrar no F8; você pode editar o minimapa sem mover a câmera do jogador. Config salva automaticamente ao sair.
- 🔍 Scroll (no F8) — ajusta o tamanho do minimapa.
- 🔎
+/-— ajustam o zoom dentro ou fora do F8. - 👁️ Marcadores de inimigos — mostra posições de inimigos no mapa. Inimigos mortos/despawnados são removidos em ~2s. Forma e cor indicam o nível de ameaça de forma redundante.
- 🔇 Silencioso por padrão —
DebugLogging=false; emite apenas uma linha no log em uso normal. - 🟢 Client-side — nenhum outro jogador precisa instalar. Sem RPCs. Sem alteração de rede.
🎮 Controles
| Tecla | Contexto | Ação |
|---|---|---|
M |
Qualquer | Mostrar / ocultar o minimapa |
F8 |
Qualquer | Entrar / sair do modo de edição |
| Arrastar | F8 ativo | Mover o minimapa |
| Scroll | F8 ativo | Ajustar tamanho |
+ / - |
F8 ativo | Ajustar zoom |
R |
F8 ativo | Resetar para valores padrão |
+ / - |
Gameplay normal | Ajustar zoom (com EnableZoomHotkeysOutsideEdit=true) |
👁️ Sistema visual dos marcadores de inimigos
Forma e cor comunicam o mesmo nível de ameaça do inimigo, de forma redundante. Isso maximiza a legibilidade no minimapa pequeno — você identifica o perigo pela forma ou pela cor.
| Ameaça | Forma | Cor | Hex |
|---|---|---|---|
| Baixa (Easy) | Círculo | Verde-gelo | #DFFFE8 |
| Média (Medium) | Quadrado | Azul escuro | #1E6BFF |
| Alta (High) | Triângulo | Lilás | #C084FC |
| Crítica (Elite) | Estrela | Vermelho/coral | #FF3B30 |
O nível de ameaça é derivado do campo difficulty do inimigo. Palavras-chave no nome/tipo podem elevar o nível (nunca reduzir):
veryheavy→ elevado para pelo menos Alta (triângulo/lilás)trudge,slow walker,boss,elite→ elevado para Crítica (estrela/vermelho)hunt,huntsman,bang,rush,charge→ elevado para pelo menos Alta (triângulo/lilás)
⚙️ Configuração
| Seção | Chave | Padrão | Efeito |
|---|---|---|---|
| Minimap | EnableMinimap |
true |
Liga/desliga o HUD do minimapa. |
| Minimap | ToggleKey |
M |
Tecla para alternar o minimapa. |
| Minimap | Width |
260 |
Largura do minimapa em pixels. |
| Minimap | Height |
260 |
Altura do minimapa em pixels. |
| Minimap | PosX |
24 |
Offset horizontal a partir da borda esquerda. |
| Minimap | PosY |
120 |
Offset vertical a partir da borda inferior. |
| Minimap | Opacity |
0.85 |
Opacidade (0 = invisível, 1 = opaco). |
| Minimap | Zoom |
2.25 |
Fator de zoom ortográfico da câmera de mapa. |
| Features | RevealRoomsMode |
Vanilla |
Vanilla = padrão (TAB original). NativeGlobal = revela via SetExplored, também afeta TAB. |
| Features | ShowEnemies |
true |
Mostrar marcadores de inimigos no mapa. |
| Features | EnemyMarkerSize |
0.95 |
Escala dos marcadores (0.30–2.00). Aplica em ~2s sem reiniciar. |
| EditMode | EditModeEnabled |
true |
Liga o modo de edição in-game (F8). |
| EditMode | EditModeKey |
F8 |
Tecla para entrar/sair do modo de edição. |
| EditMode | UnlockCursorInEditMode |
true |
Libera o cursor automaticamente ao entrar no F8. Se o jogo ainda capturar o mouse, pressione ESC uma vez. |
| EditMode | FreezeCameraInEditMode |
true |
Suspende o mouse-look da câmera ao entrar no F8. O controle é restaurado ao sair. |
| EditMode | EnableZoomHotkeysOutsideEdit |
true |
Permite +/- ajustarem o zoom durante gameplay normal, sem entrar no F8. Só funciona com minimapa visível e TAB fechado. |
| Debug | DebugLogging |
false |
Habilita logs verbosos no BepInEx/LogOutput.log. Ative somente para diagnóstico. |
📋 Notas
- O minimapa é puramente client-side e não afeta outros jogadores.
RevealRoomsMode = NativeGlobalchamaRoomVolume.SetExplored(), o que também revela salas no TAB nativo — comportamento opt-in documentado, não é o padrão.- Filtro de marcadores por sala inexplorada: removido em v1.0 (a API nativa de exploração de salas em modo Vanilla não é confiável o suficiente para uso em produção).
English
SurveyorMap reads the game's own map camera and displays a persistent minimap in the bottom-left HUD during gameplay. Same geometry, same colours, and same fidelity as the TAB map — no fake overlays.
🎯 Features
- 🗺️ Persistent minimap — bottom-left HUD, visible only during gameplay. Disappears in menus and lobby.
- 📷 Native map fidelity — reads the game's own map camera (
activeTexture). Shows real room geometry, native markers, and wall fidelity. M— press to show/hide the minimap without affecting the native TAB map.- 🛡️ TAB-safe — when you open the TAB map, the persistent minimap hides automatically. TAB is unaffected.
- 🎛️ F8 Edit Mode — cursor unlocked and camera suspended automatically on entry; edit the minimap without spinning the player's view. Config is saved on exit.
- 🔍 Scroll (in F8) — adjusts minimap size.
- 🔎
+/-— adjust zoom inside or outside F8. - 👁️ Enemy markers — shows enemy positions on the map. Dead/despawned enemies are cleaned up in ~2s. Shape and colour both indicate threat level, redundantly.
- 🔇 Silent by default —
DebugLogging=false; emits only one line in normal use. - 🟢 Client-side — no other players need to install it. No RPCs. No network changes.
🎮 Controls
| Key | Context | Action |
|---|---|---|
M |
Any | Show / hide the minimap |
F8 |
Any | Enter / exit edit mode |
| Drag | F8 active | Reposition the minimap |
| Scroll | F8 active | Adjust size |
+ / - |
F8 active | Adjust zoom |
R |
F8 active | Reset to defaults |
+ / - |
Normal gameplay | Adjust zoom (with EnableZoomHotkeysOutsideEdit=true) |
👁️ Enemy marker visual system
Shape and colour both communicate the same threat level — redundantly. This maximises readability on a small minimap — you recognise the danger by glyph or colour at a glance.
| Threat | Shape | Colour | Hex |
|---|---|---|---|
| Low (Easy) | Circle | Ice-green | #DFFFE8 |
| Medium | Square | Dark blue | #1E6BFF |
| High | Triangle | Lilac | #C084FC |
| Critical (Elite) | Star | Red / coral | #FF3B30 |
Threat level is derived from the enemy's difficulty field. Name/type keywords can only elevate the tier (never reduce it):
veryheavy→ elevated to at least High (triangle / lilac)trudge,slow walker,boss,elite→ elevated to Critical (star / red)hunt,huntsman,bang,rush,charge→ elevated to at least High (triangle / lilac)
⚙️ Configuration
| Section | Key | Default | Effect |
|---|---|---|---|
| Minimap | EnableMinimap |
true |
Enable/disable the minimap HUD. |
| Minimap | ToggleKey |
M |
Key to toggle the minimap. |
| Minimap | Width |
260 |
Minimap width in pixels. |
| Minimap | Height |
260 |
Minimap height in pixels. |
| Minimap | PosX |
24 |
Horizontal offset from the left edge. |
| Minimap | PosY |
120 |
Vertical offset from the bottom edge. |
| Minimap | Opacity |
0.85 |
Minimap opacity (0 = invisible, 1 = fully opaque). |
| Minimap | Zoom |
2.25 |
Native map camera orthographic zoom. |
| Features | RevealRoomsMode |
Vanilla |
Vanilla = default (TAB stays original). NativeGlobal = reveals via SetExplored, also affects TAB. |
| Features | ShowEnemies |
true |
Show enemy markers on the map. |
| Features | EnemyMarkerSize |
0.95 |
Marker scale multiplier (0.30–2.00). Applies within ~2s without restart. |
| EditMode | EditModeEnabled |
true |
Enable in-game edit mode (F8). |
| EditMode | EditModeKey |
F8 |
Key to enter/exit edit mode. |
| EditMode | UnlockCursorInEditMode |
true |
Unlocks the cursor automatically when F8 is active. If the game still captures the mouse, press ESC once. |
| EditMode | FreezeCameraInEditMode |
true |
Suspends camera mouse-look when F8 is active. Control is restored on exit. |
| EditMode | EnableZoomHotkeysOutsideEdit |
true |
Allows +/- to adjust minimap zoom during normal gameplay without entering F8. Only active when minimap is visible and TAB is not open. |
| Debug | DebugLogging |
false |
Enable verbose logging to BepInEx/LogOutput.log. Enable only for diagnostics. |
📋 Notes
- The minimap is purely client-side and does not affect other players.
RevealRoomsMode = NativeGlobalcallsRoomVolume.SetExplored()which also reveals rooms in the native TAB map — intentional opt-in, not the default.- Room-exploration-based marker filtering: removed in v1.0 (the native room exploration API in Vanilla mode is not reliable enough for production use).
CHANGELOG
Changelog — SurveyorMap
Este arquivo contém versão em Português e em Inglês. O Português vem primeiro; o English version is below.
This file includes Portuguese and English versions. Portuguese comes first; English version is below.
Português
v1.0.1 — 2026-06-04
Compatibilidade: R.E.P.O. Build 23250495 · BepInEx 5.4.2100
- Sem alterações de código. Publicação com categorias corretas no Thunderstore (Mods, Client-side, Quality Of Life) e badge atualizado no README.
v1.0.0 — 2026-06-02 (patch 11 — log mínimo, controles F8 invertidos, zoom fora do F8)
Compatibilidade: R.E.P.O. + BepInEx 5.4.2100
- Log mínimo com
DebugLogging=false. Com a config padrão, o SurveyorMap emite exatamente uma linha:[SurveyorMap] v1.0.0 loaded. BuildTag md5=<hash>. Tudo o mais (caminho da DLL, resumo de config, Edit mode ON/OFF, Edit mode reset) foi movido paraLogDbg, visível somente comDebugLogging=true. - Controles do F8 edit mode invertidos. Scroll do mouse agora controla o tamanho do minimapa (scroll para cima = maior, scroll para baixo = menor).
+/-agora controlam o zoom (zoom in = visão mais próxima/detalhada, zoom out = visão mais ampla).Shift+scrollremovido (redundante). - Nova config
EnableZoomHotkeysOutsideEdit = true(seção[EditMode]). Com esta opção ativa,+/-(teclado principal e numpad) ajustam o zoom do minimapa durante gameplay normal, sem precisar entrar no modo F8. Só funciona quando o minimapa está visível, o modo de edição está desativado e o TAB não está aberto. - Nenhuma alteração em minimap nativo, TAB, M, F8 camera freeze, inimigos, cores/formas ou RevealRoomsMode.
v1.0.0 — 2026-06-02 (patch 10 — congelar câmera via InputManager.DisableAiming)
Compatibilidade: R.E.P.O. + BepInEx 5.4.2100
- Correção definitiva do F8 edit mode. Diagnóstico completo do pipeline de mouse-look:
CameraAim.Update()→SemiFunc.InputMouseX/Y()→InputManager.GetMouseX/Y(), que verifica internamenteInputManager.disableAimingTimer. O patch anterior (CameraAimEditModePatch) nunca foi testado (o jogo rodou com DLL anterior). A correção real chamaInputManager.instance.DisableAiming()a cada frame enquanto o edit mode está ativo.InputManager.FixedUpdate()decrementa o timer a cada physics step; chamando noUpdate()a cada frame, o timer nunca expira eGetMouseX/Yretorna 0 constantemente. CameraAimEditModePatchmantido como segunda camada de proteção (suprimeCameraAim.Update()inteiramente quandoEditModeActive).- Nenhuma alteração em minimap, TAB, M, R reset, inimigos, cores/formas, cleanup ou RevealRoomsMode.
v1.0.0 — 2026-06-02 (patch 9 — câmera real congelada, logs silenciosos, config limpa, ícone premium)
Compatibilidade: R.E.P.O. + BepInEx 5.4.2100
- Câmera realmente congelada no F8. A abordagem anterior (
CameraAim.OverridePlayerAimDisable) não bloqueava o input de forma confiável. Substituída por patch Harmony emCameraAim.Update: enquanto o modo F8 está ativo, o método é suprimido inteiramente, impedindo que qualquer mouse delta chegue à câmera. Ao sair do F8, a supressão é removida eInput.ResetInputAxes()limpa qualquer delta acumulado. ShowEnemiesInUnexploredRoomsremovida como config pública. A feature era instável e já estava marcada como no-op. A entrada foi removida do código e do arquivo de configuração. Nenhuma funcionalidade foi perdida — todos os marcadores ativos já eram exibidos.DebugLogging=falseagora realmente silencia o log. ChamadasLog.LogInfo()eLog.LogDebug()diretas emNativeMapMirror.cs(TAB open/close, câmera encontrada, activeTexture null) foram convertidas paraLogDbg(). ComDebugLogging=false, o SurveyorMap emite apenas: BuildTag md5=, v1.0.0 loaded, config summary, Edit mode ON/OFF, Edit mode reset, warnings e erros reais. (O logging foi reduzido ainda mais no Patch 11: no estado final de release, apenas uma linha é emitida em condições normais.)- Novo ícone premium aplicado.
package/icon.pngsubstituído pelo arquivosurveyormap-v2-256.png(256×256). Master 1024px salvo emassets/icon/. - Nenhuma alteração em minimap, TAB, M, R reset, inimigos, cores/formas, cleanup ou RevealRoomsMode.
v1.0.0 — 2026-06-02 (patch 8 — suspensão de câmera no F8 edit mode)
Compatibilidade: R.E.P.O. + BepInEx 5.4.2100
- Nova config
FreezeCameraInEditMode = true(seção[EditMode]). Ao entrar no modo F8, a câmera do jogador é suspensa automaticamente usando a API nativa do jogo (CameraAim.OverridePlayerAimDisable). Mover o mouse edita o minimapa sem girar a câmera. - O controle da câmera é restaurado ao sair do modo F8, junto com o cursor.
- Implementação via API pública do jogo — sem patches, sem Windows API, sem simulação de ESC.
- Se
CameraAim.Instancefor nulo (fora de gameplay), o mod emite um aviso e continua sem travar. - Nenhuma alteração funcional: minimap, TAB, M, R reset, inimigos, cleanup, DebugLogging inalterados.
v1.0.0 — 2026-06-02 (patch 7 — cursor automático no F8 e revisão de documentação)
Compatibilidade: R.E.P.O. + BepInEx 5.4.2100
- Nova config
UnlockCursorInEditMode = true(seção[EditMode]). O cursor é liberado automaticamente ao pressionar F8 para entrar no modo de edição, sem precisar apertar ESC. O estado anterior do cursor é restaurado ao sair do modo de edição. - A liberação do cursor é reaplicada a cada frame enquanto o modo de edição estiver ativo, garantindo que o jogo não reloque o mouse durante a edição.
- Ao alternar o modo de edição,
Input.ResetInputAxes()é chamado para evitar movimento residual da câmera. - Se o jogo ainda capturar o mouse após F8, pressione ESC uma vez para liberar manualmente.
- Revisão editorial da documentação: acentuação e pontuação em português corrigidas em README e CHANGELOG.
- Nenhuma alteração funcional: minimap, TAB, M, R reset, inimigos, cleanup, DebugLogging inalterados.
v1.0.0 — 2026-06-02 (patch 6 — log cleanup: DebugLogging=false)
Compatibilidade: R.E.P.O. + BepInEx 5.4.2100
- Nova config
DebugLogging = false(seção[Debug]). Por padrão, o log fica silencioso em uso normal. AtiveDebugLogging = trueapenas para diagnóstico de classificação de inimigos, sweep e room tracking. - Logs movidos para debug condicional:
Sweep: active=,Enemy marker: id=,Map.AddCustom OK,Room explored (new),AddMarker skipped,M toggle,Patched EnemyHealth.*. - Logs que continuam sempre visíveis (à época deste patch): BuildTag md5=, plugin carregado, resumo de config, Edit mode ON/OFF, Edit mode reset, warnings e erros reais. (O escopo foi reduzido nos patches 9 e 11; no estado final de release, apenas uma linha é emitida.)
- Nenhuma alteração funcional: cores, formas, cleanup, scale, TAB/M/F8/R inalterados.
v1.0.0 — 2026-06-02 (patch 5 — alinhamento visual: cor = ameaça)
Compatibilidade: R.E.P.O. + BepInEx 5.4.2100
- Forma e cor agora representam o mesmo nível de ameaça (redundantes). Círculo+verde-gelo = Easy; Quadrado+azul = Medium; Triângulo+lilás = High; Estrela+vermelho = Elite/Crítico.
- Removido modelo
Cor = Família: cor por tipo/comportamento (Common/Small/Special/Brute) removida. A cor agora deriva exclusivamente do threat tier, igual à forma. - Keywords de nome/tipo continuam servindo apenas para elevar o threat tier; nunca para escolher cor separada.
- Log de classificação atualizado: campo
family=removido; mantidosdiff=,threat=,shape=,color=,elevated=,names=.
v1.0.0 — 2026-06-01 (patch 4 — sistema visual de inimigos v2)
Compatibilidade: R.E.P.O. + BepInEx 5.4.2100
- Novo modelo visual: Forma = Ameaça, Cor = Família (substituído no patch 5).
- Elevação de ameaça por palavra-chave:
veryheavy,trudge,slow walker,boss,elite. - Quadrado substitui losango: forma Medium agora é quadrado.
ShowEnemiesInUnexploredRoomsdepreciado: filtro por sala removido da lógica ativa.EnemyMarkerSizepadrão 0.95 (era 0.65). Aplica em ~2s via REPOConfig sem reiniciar.
v1.0.0 — 2026-06-01 (patch 3 — UX inimigos + reset editmode)
Compatibilidade: R.E.P.O. + BepInEx 5.4.2100
- Cor separada da forma: cor = nível de perigo/dificuldade; forma = tipo/família do inimigo.
- Filtro pré-spawn em
AddMarker: inimigos mortos, inativos ou comCurrentState=Despawnrejeitados. - Tecla
Rno modo de edição: reseta para os valores padrão (PosX=24, PosY=120, W=260, H=260, Zoom=2.25, Opacity=0.85). Funciona apenas com F8 ativo.
v1.0.0 — 2026-06-01 (patch 2 — marcadores e edit mode)
Compatibilidade: R.E.P.O. + BepInEx 5.4.2100
- Cleanup de marcadores por registry: sweep a cada 2s, ClearAll no carregamento do nível.
- Marcadores com formas (círculo/losango/triângulo/estrela) e cores por dificuldade.
- Modo de edição F8: mover, redimensionar pelo canto, zoom com scroll,
Shift+wheel,+/-, salvar ao sair. RevealRoomsMode = Vanillacomo padrão seguro.NativeGlobalé opt-in e também afeta o TAB.
v1.0.0 — 2026-06-01
Compatibilidade: R.E.P.O. + BepInEx 5.4.2100
- Rebuild v2 com arquitetura limpa baseada no espelho do mapa nativo.
- Minimapa persistente via câmera nativa
activeTexture. - Comportamento TAB-safe: o minimapa some enquanto o TAB nativo está aberto.
- Toggle
Mpara mostrar/esconder o minimapa. - Marcadores de inimigos via
MapCustom, com cleanup por despawn. RevealRoomsMode:Vanilla(padrão, sem SetExplored),NativeGlobal(afeta TAB),MinimapOnlybloqueado.
v1.0.0 — 2026-05-31
- Rebuild inicial da arquitetura v2.
- Remoção de RuntimeLoop, RuntimeProbeBehaviour, CenterOnPlayer, overlays falsos, RenderTexture próprio e proof HUD.
- Baseline de minimapa nativo, M toggle, TAB-safe, RevealRooms global e ShowEnemies inicial.
English
v1.0.1 — 2026-06-04
Compatibility: R.E.P.O. Build 23250495 · BepInEx 5.4.2100
- No code changes. Published with correct Thunderstore categories (Mods, Client-side, Quality Of Life) and updated README badge.
v1.0.0 — 2026-06-02 (patch 11 — minimal log, inverted F8 controls, zoom outside F8)
Compatibility: R.E.P.O. + BepInEx 5.4.2100
- Minimal log with
DebugLogging=false. With the default config, SurveyorMap emits exactly one line:[SurveyorMap] v1.0.0 loaded. BuildTag md5=<hash>. Everything else (DLL path, config summary, Edit mode ON/OFF, reset) has been moved toLogDbg, visible only whenDebugLogging=true. - F8 edit mode controls inverted. Scroll wheel now controls minimap size (scroll up = bigger, scroll down = smaller).
+/-now control zoom (zoom in = closer/more-detailed view, zoom out = wider view).Shift+scrollremoved (redundant). - New config
EnableZoomHotkeysOutsideEdit = true(section[EditMode]). When enabled,+/-(main keyboard and numpad) adjust minimap zoom during normal gameplay without entering F8 edit mode. Only active when the minimap is visible, edit mode is off, and the TAB map is not open. - No changes to native minimap, TAB, M, F8 camera freeze, enemy markers, colours/shapes, or RevealRoomsMode.
v1.0.0 — 2026-06-02 (patch 10 — camera freeze via InputManager.DisableAiming)
Compatibility: R.E.P.O. + BepInEx 5.4.2100
- Definitive F8 edit mode camera fix. Full pipeline analysis:
CameraAim.Update()→SemiFunc.InputMouseX/Y()→InputManager.GetMouseX/Y(), which checksInputManager.disableAimingTimerinternally. The previous patch (CameraAimEditModePatch) was never tested (the game ran with an older DLL). The real fix callsInputManager.instance.DisableAiming()every frame while edit mode is active.InputManager.FixedUpdate()decrements the timer every physics step; by calling it inUpdate()every frame, the timer never expires andGetMouseX/Yalways returns 0. CameraAimEditModePatchretained as a second layer (suppressesCameraAim.Update()entirely whenEditModeActive).- No changes to minimap, TAB, M, R reset, enemy markers, colours/shapes, cleanup, or RevealRoomsMode.
v1.0.0 — 2026-06-02 (patch 9 — real camera freeze, silent logs, config cleanup, premium icon)
Compatibility: R.E.P.O. + BepInEx 5.4.2100
- Camera actually frozen during F8. The previous approach (
CameraAim.OverridePlayerAimDisable) did not reliably block mouse-look input. Replaced with a Harmony prefix patch onCameraAim.Update: while F8 edit mode is active, the method is suppressed entirely, preventing any mouse delta from reaching the camera. On exit, suppression is removed andInput.ResetInputAxes()clears any accumulated delta. ShowEnemiesInUnexploredRoomsremoved as a public config. The feature was unstable and already a no-op. The config entry has been removed from code and from the config file. No functionality lost — all live markers were already shown unconditionally.DebugLogging=falsenow truly silences the log. DirectLog.LogInfo()andLog.LogDebug()calls inNativeMapMirror.cs(TAB open/close, camera found, activeTexture null) were converted toLogDbg(). WithDebugLogging=false, SurveyorMap only emits: BuildTag md5=, v1.0.0 loaded, config summary, Edit mode ON/OFF, Edit mode reset, real warnings and errors. (Logging was reduced further in Patch 11: in the final release state, only one line is emitted under normal conditions.)- New premium icon applied.
package/icon.pngreplaced withsurveyormap-v2-256.png(256×256). 1024px master saved toassets/icon/. - No changes to minimap, TAB, M, R reset, enemy markers, colours/shapes, cleanup, or RevealRoomsMode.
v1.0.0 — 2026-06-02 (patch 8 — camera suspension during F8 edit mode)
Compatibility: R.E.P.O. + BepInEx 5.4.2100
- New config
FreezeCameraInEditMode = true(section[EditMode]). When entering F8 edit mode, the player camera look is suspended automatically using the game's own API (CameraAim.OverridePlayerAimDisable). Moving the mouse edits the minimap without spinning the camera. - Camera control is restored when you exit F8 edit mode, together with cursor state.
- Implemented via the game's public API — no patches, no Windows API, no ESC simulation.
- If
CameraAim.Instanceis null (e.g. not in gameplay), the mod emits a warning and continues without crashing. - No functional changes: minimap, TAB, M, R reset, enemy markers, cleanup, DebugLogging unchanged.
v1.0.0 — 2026-06-02 (patch 7 — automatic cursor in F8 edit mode and documentation review)
Compatibility: R.E.P.O. + BepInEx 5.4.2100
- New config
UnlockCursorInEditMode = true(section[EditMode]). The cursor is unlocked and made visible automatically when you press F8 to enter edit mode — no need to press ESC first. The previous cursor state is restored when you exit edit mode. - Cursor unlock is reapplied every frame while edit mode is active, ensuring the game cannot re-lock the cursor during editing.
Input.ResetInputAxes()is called when toggling edit mode to prevent residual camera movement.- If the game still captures the mouse after pressing F8, press ESC once to release it manually.
- Editorial review of documentation: corrected accents and punctuation in the Portuguese README and CHANGELOG.
- No functional changes: minimap, TAB, M, R reset, enemy markers, cleanup, DebugLogging unchanged.
v1.0.0 — 2026-06-02 (patch 6 — log cleanup: DebugLogging=false)
Compatibility: R.E.P.O. + BepInEx 5.4.2100
- New config
DebugLogging = false(section[Debug]). Log is silent by default for end users. SetDebugLogging = trueonly for diagnostics (enemy classification, sweep, room tracking). - Moved to conditional debug:
Sweep: active=,Enemy marker: id=,Map.AddCustom OK,Room explored (new),AddMarker skipped,M toggle,Patched EnemyHealth.*. - Always visible (at the time of this patch): BuildTag md5=, plugin loaded, config summary, Edit mode ON/OFF, Edit mode reset, real warnings and errors. (Scope was reduced further in patches 9 and 11; in the final release, only one line is emitted.)
- No functional changes: colours, shapes, cleanup, scale, TAB/M/F8/R unchanged.
v1.0.0 — 2026-06-02 (patch 5 — visual alignment: colour = threat)
Compatibility: R.E.P.O. + BepInEx 5.4.2100
- Shape and colour now represent the same threat level (redundant). Circle+ice-green = Easy; Square+blue = Medium; Triangle+lilac = High; Star+red = Elite/Critical.
- Removed
Colour = Familymodel: colour-by-behaviour-type (Common/Small/Special/Brute) removed. Colour is now derived exclusively from threat tier, same as shape. - Name/type keywords still serve only to elevate threat tier, never to choose a separate colour.
- Classification log updated:
family=field removed;diff=,threat=,shape=,color=,elevated=,names=retained.
v1.0.0 — 2026-06-01 (patch 4 — enemy visual system v2)
Compatibility: R.E.P.O. + BepInEx 5.4.2100
- New visual model: Shape = Threat, Colour = Family (superseded by patch 5).
- Threat elevation by keyword:
veryheavy,trudge,slow walker,boss,elite. - Square replaces diamond: Medium threat shape is now a square.
ShowEnemiesInUnexploredRoomsdeprecated: room-based filtering removed from active logic.EnemyMarkerSizedefault 0.95 (was 0.65). Applies within ~2s via REPOConfig without restart.
v1.0.0 — 2026-06-01 (patch 3 — enemy UX + edit mode reset)
Compatibility: R.E.P.O. + BepInEx 5.4.2100
- Colour separated from shape: colour = danger/difficulty level; shape = enemy type/family.
- Pre-spawn filter in
AddMarker: dead, inactive, orCurrentState=Despawnenemies rejected. Rkey in edit mode resets to default values. Only works when F8 edit mode is active.
v1.0.0 — 2026-06-01 (patch 2 — markers and edit mode)
Compatibility: R.E.P.O. + BepInEx 5.4.2100
- Registry-based marker cleanup: 2s sweep, ClearAll on level load.
- Marker shapes (circle/diamond/triangle/star) and colours by difficulty.
- F8 edit mode: move, resize from corner, scroll zoom,
Shift+wheel,+/-, save on exit. RevealRoomsMode = Vanillaas safe default.NativeGlobalis opt-in and also affects TAB.
v1.0.0 — 2026-06-01
Compatibility: R.E.P.O. + BepInEx 5.4.2100
- v2 rebuild with a clean native-map mirror architecture.
- Persistent minimap through the native map camera
activeTexture. - TAB-safe behaviour: the minimap hides while the native TAB map is open.
Mtoggle to show/hide the minimap.- Enemy markers through
MapCustom, with cleanup on despawn. RevealRoomsMode:Vanilla(default, no SetExplored),NativeGlobal(also affects TAB),MinimapOnlyblocked.
v1.0.0 — 2026-05-31
- Initial v2 architecture rebuild.
- Removed RuntimeLoop, RuntimeProbeBehaviour, CenterOnPlayer, fake overlays, owned RenderTexture, and proof HUD.
- Baseline native minimap, M toggle, TAB-safe behaviour, global RevealRooms, and initial ShowEnemies.