GymMed-Adjustable_Chat icon

Adjustable Chat

Resize and reposition your chat panel — it finally obeys you!

Last updated 6 days ago
Total downloads 40
Total rating 0 
Categories Mechanics Utility UI
Dependency string GymMed-Adjustable_Chat-0.0.1
Dependants 0 other packages depend on this package

This mod requires the following mods to function

sinai-dev-SideLoader-3.8.4 icon
sinai-dev-SideLoader

API and Mod Development Toolkit for Outward.

Preferred version: 3.8.4
BepInEx-BepInExPack_Outward-5.4.19 icon
BepInEx-BepInExPack_Outward

BepInEx pack for Outward.

Preferred version: 5.4.19

README

Outward Adjustable Chat


Logo
Resize and reposition your chat panel — it finally obeys you!

Overview

Outward Adjustable Chat gives you complete control over your in-game chat panel. Stuck in the corner with no way to move it? Forced to use a tiny chat window that ruins your immersion? Those days are over — now you can drag your chat anywhere on screen, resize it to fit your needs, and your settings travel with your character across saves. functionality

Features

  • Drag to Reposition — Click and drag anywhere on non-interactive areas of the chat panel to move it wherever you want
  • Resize with Style — Pull the golden handle in the bottom-right corner to resize the panel freely
  • Persistent Settings — Your position and size are saved automatically with each character save
  • Smart Sprite Handling — Uses Sliced image type so the panel background stays crisp and unstretched when resized

Technical Details

XML Data Storage

Chat panel settings are stored per-character in XML format. Each character maintains their own panel configuration that follows them across save/load cycles.

File Location: BepInEx/config/gymmed.Mods_Communicator/Adjust_Chat/{characterUID}/ChatPanelState.xml

Data Structure:

  • DisplaySize — The size of the "Display" child element (x, y)
  • PositionOffset — The screen position of the "Chat - Panel" parent element (x, y)
  • BackgroundSize — The size of the background element (x, y)

Load Flow:

  1. Harmony patch intercepts CharacterSaveInstanceHolder.ApplyLoadedSaveToChar()
  2. XML file is loaded and stored as pending state
  3. When ChatPanel.StartInit() completes, the component's Start() method applies the saved values
  4. Position is applied to the parent "Chat - Panel" RectTransform, size to the child "Display" RectTransform

Save Flow:

  1. Harmony patch intercepts SaveInstance.Save()
  2. Current position is read from the "Chat - Panel" parent RectTransform
  3. Current size is read from the "Display" child RectTransform
  4. Data is serialized to XML using System.Xml.Serialization

Sprite Styling

The mod enhances the chat panel's visual quality using Unity's built-in image handling:

  • Trigger: SideLoader's SL.OnSceneLoaded event calls ChatPanelStyler.ApplyToAllCharacters() for each active character
  • Problem: The original sprite (tex_men_backgroundChat) stretches when the panel is resized, causing blurry/pixelated edges
  • Solution: Uses UnityEngine.Sprite.Create() with custom border parameters (14px for sides, 58px for bottom) to create a styled sprite
  • Result: Sets UnityEngine.UI.Image.type = Image.Type.Sliced so the corners remain sharp and borders intact during resize
  • Optimization: The styled sprite is created once and cached for reuse across all characters

Drag & Resize Implementation

  • Dragging: Uses Unity's native EventTrigger system (PointerDown, Drag, PointerUp events) rather than polling in Update()
  • Resizing: Creates a 10x10 golden-colored handle at the bottom-right corner of the "Display" element
  • Position Tracking: Position is saved from the "Chat - Panel" parent (not the child "Display") to ensure absolute screen positioning

How to set up

To manually set up, do the following

  1. Create the directory: Outward\BepInEx\plugins\OutwardAdjustableChat\.
  2. Extract the archive into any directory(recommend empty).
  3. Move the contents of the plugins\ directory from the archive into the BepInEx\plugins\OutwardAdjustableChat\ directory you created.
  4. It should look like Outward\BepInEx\plugins\OutwardAdjustableChat\OutwardAdjustableChat.dll Launch the game.

If you liked the mod leave a star on GitHub it's free