issy-SprayPaint icon

SprayPaint

Spray colored marks, PNG/JPG images and animated GIFs on GTFO surfaces. Includes presets, a color palette, galleries and optional multiplayer image sharing.

By issy
Last updated a day ago
Total downloads 37
Total rating 0 
Categories Client Mods
Dependency string issy-SprayPaint-0.1.3
Dependants 0 other packages depend on this package

This mod requires the following mods to function

BepInEx-BepInExPack_GTFO-3.2.3 icon
BepInEx-BepInExPack_GTFO

BepInEx pack for GTFO. Preconfigured and includes Unity Base DLLs.

Preferred version: 3.2.3

README

SprayPaint

SprayPaint lets you place colored marks, PNG/JPG images and animated GIFs on GTFO surfaces. It includes a keyboard-driven menu, presets, a color palette, separate local and received galleries, and optional multiplayer image sharing.

Image Folders (Important)

Your own images

Put your images in the Sprays folder next to SprayPaint.dll:

Manual install:        BepInEx/plugins/SprayPaint/Sprays/
Thunderstore / R2:     BepInEx/plugins/<namespace>-SprayPaint/SprayPaint/Sprays/

The exact path is also written to BepInEx/LogOutput.log as:

[SprayPaint] sprays folder: ...

Then press F7 in game and open the Image category.

Supported formats:

.png
.jpg
.jpeg
.gif

These images appear in the main gallery.

Received images

Images downloaded from other players are stored automatically in the Received folder inside that same Sprays directory:

...\Sprays\Received\

Do not put your own images in Received; they will only appear in the received gallery. To keep an image in your own main gallery, put it in Sprays instead.

The Received folder is created automatically. You do not need to create it manually. Files in Received can be deleted to free space.

If you update from an older version, images are migrated automatically from the old global BepInEx/plugins/SprayPaint/Sprays location.

中文说明

自己的图片:
  放到 SprayPaint.dll 同级的 Sprays 文件夹
  手动安装:BepInEx/plugins/SprayPaint/Sprays/
  Thunderstore/R2:BepInEx/plugins/<命名空间>-SprayPaint/SprayPaint/Sprays/
  按 F7 → 图片分类选择

队友发来的图片:
  自动保存到同一个 Sprays 下的 Received/
  只显示在“接收图库”,不会出现在主图库

自己的图片不要放进 Received。
Received 文件夹会自动创建,不需要手动新建。
旧版本图片会自动迁移。

Multiplayer is disabled by default.

To use multiplayer, enable Network.Enabled, Network.AutoDownload and Network.ServeFiles in BepInEx/config/SprayPaint.cfg. All players should use the same SprayPaint version.

Features

Press F7 in game to open the SprayPaint menu and change settings without leaving the game.

  • Solid color sprays
  • PNG and JPG image sprays
  • Animated GIF sprays
  • Adjustable size, shape, opacity and lifetime
  • Ground single-sided rendering
  • Distance scaling and distance culling
  • Spray sound
  • Object pool, texture cache, LRU and mipmaps
  • English, Chinese and Korean menu languages
  • 4×3 preset grid (6 color presets + 6 full presets)
  • Color palette with favorites and recent colors
  • Separate main and received image galleries
  • Adjustable menu position with screen clamping
  • Multiplayer position/color/size/shape synchronization
  • Chunked image transfer with targeted requests and fallback broadcast
  • ACK-based missing chunk resend and SHA-256 validation
  • Content hash cache and persistent hash index
  • Host-controlled file transfer permission
  • Receiver image size and pixel limits
  • Received spray size override

Controls

The menu is keyboard-only.

Key Action
F7 Open / close the menu
Up Go to the tab bar
Left / Right Change category / adjust the selected value
Down Enter the list / go back
Up / Down Select a menu row
Y Activate the selected row
Shift+Y Save a preset in the preset grid
Backspace Clear a preset (press twice to confirm)
R Switch between the main and received galleries
Esc Go back

Installation

Thunderstore

Install with the mod manager. The BepInEx package is declared as a dependency.

Manual

  1. Install BepInEx 6 (IL2CPP) for GTFO.
  2. Copy BepInEx/plugins/SprayPaint/SprayPaint.dll into your GTFO folder.
  3. Start the game once.

The plugin creates the data folders next to SprayPaint.dll:

<plugin folder>/Sprays/
<plugin folder>/Sprays/Received/
BepInEx/config/SprayPaint.cfg

For Thunderstore/R2ModMan, <plugin folder> is normally:

BepInEx/plugins/<namespace>-SprayPaint/SprayPaint/

The exact path is logged as sprays folder: ....

Multiplayer Setup

Open BepInEx/config/SprayPaint.cfg and enable:

[Network]
Enabled = true
AutoDownload = true
ServeFiles = true

Important settings:

[Network]
HostAllowTransfer = true
MaxDownloadMB = 12
MaxReceiveImageDimension = 4096
RemoteSpraySize = 0
  • Enabled broadcasts local sprays to other players.
  • AutoDownload requests missing images automatically.
  • ServeFiles allows the game to serve images to other players.
  • HostAllowTransfer is controlled by the host. If the host disables it, the whole lobby stops transferring and downloading files.
  • MaxDownloadMB limits the file size of every received or sent image. It is not GIF-only.
  • MaxReceiveImageDimension rejects received images whose decoded width or height is too large.
  • RemoteSpraySize = 0 follows the sender's size. Set a value between 0.1 and 5 to force a local display size.

All players should use the same SprayPaint version when playing together.

Configuration

The menu exposes the most commonly used settings. Advanced settings are available in SprayPaint.cfg.

Useful defaults:

[Paint]
Size = 0.33
Offset = 0.02
MaxDecals = 50
MaxTextureSize = 2048
ImageBrightness = 0.35
ImageGamma = 1
Opacity = 1
DoubleSided = true
GroundSingleSided = true
DistanceScale = true

Files

Own images         Sprays/
Received images    Sprays/Received/
Texture cache      Sprays/.texturecache/
Hash index         Sprays/.cache/hashindex.tsv
Config             BepInEx/config/SprayPaint.cfg

Local images appear in the main gallery. Images received from other players appear in the received gallery.

Known Limitations

  • Sprays do not fully conform to curved surfaces.
  • Large images, many active sprays, or double-sided rendering can reduce FPS.
  • There are no projected decals; sprays are flat quads.
  • Compressed transfers can change file bytes, but the result is validated as a decodable image.
  • Enabling GIF compression sends only the first frame, making the spray static.
  • The menu does not support mouse control.
  • When the host disables file transfer, no player in the lobby can transfer or download files.

中文说明

SprayPaint 是一个 GTFO 喷漆 Mod,可以在墙面、地面和物体上喷涂纯色、PNG/JPG 图片或 GIF 动画,并支持多人联机共享。

默认关闭联机

安装后联机默认关闭。要使用联机,请在 BepInEx/config/SprayPaint.cfg 中打开:

[Network]
Enabled = true
AutoDownload = true
ServeFiles = true

所有联机玩家需要使用相同版本的 SprayPaint。

键盘操作

F7                 打开/关闭菜单
方向键             选择 / 切换 / 修改
Y                  执行
Shift+Y            保存预设
Backspace          删除预设(按两次确认)
R                  主图库 / 接收图库
Esc                返回

菜单不支持鼠标操作。

打开菜单

在游戏内按 F7 即可打开菜单并修改设置。

房主权限

房主可以在联机菜单中关闭文件传输。关闭后,整个房间停止传输和下载,其他玩家的本地开关不会生效。

Credits

Icon character and background artwork are provided by the mod author. Character rights belong to their original owners.

Changelog

See CHANGELOG.md.