Hello everyone, I am new here in Tiled so I hope I a posting my project in the correct location.
I would like to share my project for Tiled called **Brushtily**, a JavaScript extension that brings freeform texture painting and object stamping capabilities to Tiled Map Editor.
What is Brushtily?
Brushtily bridges the gap between Tiled’s grid-based workflow and freeform digital painting, inspired by projects like Inkarnate’s intuitive brushing and stamping system. It enables artists and level designers to create organic, natural-looking terrain and textures directly in Tiled.
Key Features
Texture Painting
- **Freeform Brush Strokes**: Non-grid-aligned painting with smooth, natural strokes
- **Custom Brush Textures**: Load PNG/JPG images as brush textures
- **Tileset Tile Brushes**: Use tiles from your tilesets directly as brushes
- **Auto-Smoothing**: Automatically removes hard edges for natural results
- **Multiple Brush Shapes**: Circular, Square, Ellipse, or Diamond
Advanced Brush Controls
- Brush Size (10-500 pixels)
- Opacity (0-100%)
- Softness (0-100%) - Edge feathering
- Texture Scale (10-200%)
- Rotation (0-360°) with rotation jitter
- Position jitter and spacing control
- Professional blend modes (Normal, Multiply, Screen, Overlay, Darken, Lighten, etc.)
- Mask modes (Add, Subtract, Multiply)
Object Stamping System
- **Drag-to-Stamp Workflow**: Easy object placement on ObjectGroup layers
- **Object Library Browser**: Visual browser with thumbnails, categories, and search
- **Automatic Object Placement**: Places objects along brush stroke path
- **Random Variation**: Optional rotation and scale variation for natural placement
- **Smart Mode Switching**: Automatically toggles between painting and stamping modes
- **Descriptive Object Naming**: Objects named based on source files for easy identification
Additional Features
- **Right-Click Erase**: Independent erase brush with separate size and softness controls
- **Fill Mode**: Bucket fill with color tolerance control
- **Pressure Sensitivity**: Velocity-based simulation for natural brush strokes
- **Brush Presets**: Save and load favorite configurations
- **Layer Brush Memory**: Automatically remembers brush texture per layer
- **Native Layer Blending**: Seamless integration between layers
Screenshots

*Brushtily toolbar integrated into Tiled Map Editor*
Quick Start
1. **Download** `brushtily.mjs` from the [latest release]( Releases · PersistenceOS/brushtily · GitHub )
2. **Copy to Tiled extensions folder**:
- **Windows**: `%LOCALAPPDATA%\Tiled\extensions\`
- **macOS**: `~/Library/Preferences/Tiled/extensions/`
- **Linux**: `~/.config/tiled/extensions/`
3. **Restart Tiled** (or extension will auto-reload)
4. Find “Brushtily” in the Tools toolbar
5. Add an **Image Layer** and start painting!
Requirements
- Tiled 1.8 or later
- JavaScript extensions enabled (default)
Use Cases
- **Terrain Painting**: Create organic terrain textures (grass, dirt, sand, etc.)
- **Object Placement**: Quickly populate maps with trees, rocks, buildings, etc.
- **Art Asset Creation**: Generate textures and patterns directly in Tiled
- **Level Design**: Add natural details and decorations to maps
- **Documentation**: Full README with detailed usage instructions
I’d love feedback from the Tiled community! @bjorn - hope this extension is useful!