You are viewing a potentially older version of this package. View all versions.
AndrewLin-Chalky-1.2.2 icon

Chalky

Chalky: Enlarge chalk and save/load chalkboard. Use /chalkyhelp for commands.

Date uploaded 4 months ago
Version 1.2.2
Download link AndrewLin-Chalky-1.2.2.zip
Downloads 66
Dependency string AndrewLin-Chalky-1.2.2

This mod requires the following mods to function

BepInEx-BepInExPack-5.4.2305 icon
BepInEx-BepInExPack

BepInEx pack for Mono Unity games. Preconfigured and ready to use.

Preferred version: 5.4.2305
AndrewLin-Alpha-0.1.1 icon
AndrewLin-Alpha

Alpha: A mod for On-Together to provide common utilities and features.

Preferred version: 0.1.1

README

Chalky

A BepInEx mod for On Together that enhances the chalkboard drawing experience with configurable brush sizes and in-game chat commands.

Features

  • Configurable chalk brush size - Paint a larger area on the chalkboard in a single stroke. The default game brush covers a 2×2 grid cell block; Chalky lets you scale this up to any integer size.
  • Chalkboard save & load - Save any board's full drawing state to a local file and restore it later. Saved files are portable JSON and include an optional PNG preview.
  • Broadcast on load - When loading a board, all currently connected players receive the restored drawing instantly. If you're the host, the update is sent directly. If you're a non-host client, the board state is relayed through the host (requires the host to also have Chalky installed). Late-joiners get it automatically through the game's existing sync flow.
  • In-game chat commands - Control all mod behavior on the fly without leaving the game. Commands are typed into the chat box and are never sent to other players.
  • Toggle on/off at runtime - Enable or disable the mod's drawing enhancements instantly without restarting.
  • Show/hide command echo - Optionally suppress commands from appearing in your chat history.

Warning

  • Chalk size can only be enlarged. Smaller than the default 2×2 is not supported.
  • Non-host board loading requires the host to also have Chalky installed for other players to see the changes. Without Chalky on the host, only your own view will update.

In-Game Commands

Type any command into the in-game chat. Commands start with / and are not sent to other players. Each command has a short alias for convenience.

  • /chalkyhelp (/ch) - List all available Chalky commands
  • /chalkytoggle (/ct) - Toggle the mod on or off
  • /chalkysetsize [size] (/css [size]) - Set the chalk brush size. Omit to reset to default (2)
  • /chalkygetboards (/cgb) - List all saved chalkboards
  • /chalkysaveboard [name] [index] (/csb [name] [index]) - Save a board to disk. Omit [index] to use the active board
  • /chalkyloadboard [name] [index] (/clb [name] [index]) - Load a board from disk and sync to all players. Works for both host and non-host clients (non-host relay requires Chalky on the host)

Note: Size changes are not persistent and reset to the default of 2 on game restart.

Examples

# Set brush to paint a 5x5 block per stroke
/css 5

# Reset brush size back to default (2x2)
/css

# Save the currently active board as "lobby_art"
/csb lobby_art

# Save board index 2 specifically as "backup"
/csb backup 2

# Load "lobby_art" onto the currently active board
/clb lobby_art

# Load "backup" onto board index 0
/clb backup 0

# List all saved boards
/cgb

# Turn off Chalky's drawing enhancements entirely
/ct

# Check which commands are available
/ch

Configuration

Settings are saved to the BepInEx config file and can also be changed at runtime via chat commands.

Location: BepInEx/config/com.andrewlin.ontogether.chalky.cfg

  • General
    • EnableFeature (default: true) - Enable or disable all mod features
    • ShowCommand (default: false) - Show commands in chat when typed (config file only)
  • Boards
    • BoardSaveDirectory (default: ~/on-together/chalkboard) - Directory where board saves are stored. ~ expands to your home folder

Saved boards are stored as <name>.chalkboard.json (full drawing data) and <name>.png (preview image) in the configured directory.

Installation

Use r2modman for simpler installation.

  1. Install BepInEx into your On Together game folder
  2. Copy AndrewLin.Chalky.dll into BepInEx/plugins/
  3. Launch the game - the mod will load automatically and generate a config file at BepInEx/config/com.andrewlin.ontogether.chalky.cfg

Building from Source

Requires .NET SDK and the game's managed DLLs referenced in the project.

dotnet build

Output DLL will be in Chalky/bin/.

CHANGELOG

Changelog

All notable changes to this project will be documented in this file.

[1.2.9] - 2026-06-15

Fixed

  • Adapt to game update 1.1.3 - replaced fragile Traverse reflection calls (PaintPixel/RenderBatch) in RebuildRenderTexture with the game's own GetQuadImage_Original_1 method
  • BroadcastToAllPlayers now skips self to avoid duplicate local repaint

[1.2.8] - 2026-04-27

Changed

  • Host relay notification and log now include the board's network ID

[1.2.7] - 2026-04-12

Changed

  • Dependency update to Alpha 0.0.11

[1.2.6] - 2026-04-12

Changed

  • Depends on Alpha 0.0.10

[1.2.5] - 2026-04-11

Changed

  • Depends on Alpha 0.0.8

[1.2.4] - 2026-04-01

Added

  • Somehow 1.2.3 got removed from thunderstore

[1.2.3] - 2026-04-01

Added

  • EnableHostRelay config entry (default true) - controls whether the host relays board state to other players
  • /chalkyhostrelay (/chr) - toggle host relay on/off at runtime

Removed

  • Spoofing host feature and /chalkyspoofhost (/csh) command

[1.2.0] - 2026-03-28

Added

  • /chalkyspoofhost (/csh) - toggle spoof host on/off at runtime (hidden from help listing)

[1.1.0] - 2026-03-27

Added

  • Spoofing host feature (experimental)

Changed

  • Fixed occassional host not found issue

[1.0.2] - 2026-03-25

Added

  • Non-host clients can now load boards and broadcast to all players via host relay
    • Board state is sent to the host, which relays to all other connected players
    • Requires the host to also have Chalky installed

Changed

  • /chalkyloadboard no longer requires being the session host
  • Updated user-facing messages for non-host board loading

[1.0.0] - 2026-03-20

Removed

  • /chalkyshowcommand (/cshc) - use the ShowCommand config entry instead

[0.0.4] - 2026-02-22

Removed

  • /help chalky (/h chalky) - use /chalkyhelp (/ch) instead

[0.0.3] - 2026-02-21

Added

  • Any players can now save chalkboard state as JSON to their local pc with a name.
  • Only hosts are allowed to load chalkboard from a JSON.
  • Commands
    • /chalkygetboards (cgb) to list all saved boards
    • /chalkysaveboard (csb) to save a specific/active board
    • /chalkyloadboard (clb) to load a board

[0.0.2] - 2026-02-20

Changed

  • Changes are now non-local, observers can see it too

Removed

  • Disabled chalk size 1, smaller than 2x2 causes desync
  • Disabled chalk colors, colors causes desync.

[0.0.1] - 2026-02-20

Added

  • Configurable chalk brush size - paints a size x size grid block per stroke instead of the default 2×2
    • Size 1 paints a single grid cell
    • Size 2 (default) falls through to the original game logic unchanged
    • Sizes > 2 use the expanded custom painting path
  • Erase mode always uses original game logic regardless of configured size
  • In-game chat command system - commands starting with / are intercepted and never sent to other players
  • /chalkysetsize [size] (/css) - set brush size at runtime; omit argument to reset to default
  • /chalkytoggle (/ct) - toggle all mod features on/off at runtime
  • /chalkyshowcommand (/fsc) - toggle whether typed commands are echoed in the chat history
  • /chalkyhelp (/fh) - list all available commands in chat
  • /help chalky (/h chalky) - same as above via the shared help command
  • EnableFeature config entry (default: true) - persisted toggle for mod features
  • ShowCommand config entry (default: false) - persisted toggle for command echo