Skip to main content

PivotPoly Configuration

PivotPoly currently uses YAML-based storage for door data. Configuration options may be expanded in future versions.

File Structure

plugins/PivotPoly/
├── doors.yml # Door data storage (auto-generated)
└── config.yml # Main config (if implemented in future)

Door Data Storage

doors.yml

This file stores all created door information and is managed automatically by the plugin.

Location: plugins/PivotPoly/doors.yml

Format: YAML

Auto-generated: Yes (created on first door creation)

Example Structure:

doors:
CastleGate:
world: world
pos1:
x: 100
y: 64
z: 200
pos2:
x: 105
y: 70
z: 200
pivot:
x: 102
y: 64
z: 200
rotation_angle: 90
animation_speed: 20
sound_open: BLOCK_IRON_DOOR_OPEN
sound_close: BLOCK_IRON_DOOR_CLOSE

SecretDoor:
world: world
# ... door data ...

Managing Door Data

Backup:

# Always backup before making manual edits!
cp plugins/PivotPoly/doors.yml plugins/PivotPoly/doors.yml.backup

Editing:

  • ⚠️ Not recommended to edit manually
  • Use in-game commands and GUI instead
  • If editing manually, stop the server first
  • Validate YAML syntax before restarting

Restoring:

# If something goes wrong
cp plugins/PivotPoly/doors.yml.backup plugins/PivotPoly/doors.yml

Door Settings

Door behavior can be configured through the GUI (/pp gui). Current customizable options:

Rotation Settings

  • Rotation Angle: Degrees to rotate (0-360)
  • Rotation Direction: Clockwise/Counter-clockwise
  • Animation Speed: Ticks for animation duration

Sound Effects

  • Open Sound: Sound played when door opens
  • Close Sound: Sound played when door closes
  • Sound Volume: 0.0 - 1.0
  • Sound Pitch: 0.5 - 2.0

Visual Settings

  • Glow Effect: Enable/disable glowing during animation
  • Display Brightness: BlockDisplay brightness level

Future Configuration Options

These options may be added in future versions:

# config.yml (not yet implemented)
settings:
max_doors_per_world: 50
max_selection_size: 10000 # blocks
auto_save_interval: 300 # seconds
enable_sounds: true
default_animation_speed: 20
allow_overlapping_doors: false

permissions:
require_permission_to_use: false

performance:
max_concurrent_animations: 10
update_interval: 1 # ticks

Data Persistence

How Data is Saved

  1. Automatic Saving: Doors automatically save when:

    • A new door is created
    • A door is deleted
    • A door is modified
    • Server shuts down gracefully
  2. Manual Saving: Triggered by:

    • Server reload/restart
    • Plugin reload (if implemented)

Data Loading

Doors are loaded:

  • On server startup
  • When plugin enables
  • Automatically restores all BlockDisplay entities

World-Specific Considerations

Multi-World Setups

Doors are world-specific:

  • Each door is tied to the world where it was created
  • Door names must be unique per world
  • Deleting a world removes associated doors

Moving Doors Between Worlds

Currently not supported. To replicate a door:

  1. Use blueprint system: /pp blueprint save <door> <name>
  2. Load world where you want the copy
  3. Use blueprint paste: /pp blueprint paste <newname> <name>

Performance Optimization

Best Practices

Limit door complexity: Keep selections reasonably sized
Avoid overlapping doors: Don't create doors in same space
Regular backups: Backup doors.yml regularly
Clean up unused doors: Delete doors you no longer need

When to Optimize

Monitor these signs:

  • Server TPS drops during door animations
  • Lag spikes when multiple doors activate
  • High entity count in /minecraft:entity list

Solutions:

  • Reduce number of concurrent door animations
  • Simplify complex door designs
  • Delete unused doors

Troubleshooting Configuration

IssueSolution
Doors not savingCheck file permissions on plugins/PivotPoly/
Doors missing after restartVerify doors.yml exists and is valid YAML
Cannot create new doorsCheck doors.yml for corruption, restore from backup
Strange behaviorDelete doors.yml (will lose all doors) and recreate

Configuration Commands

While there's no dedicated reload command yet, you can manage configuration through:

# List all doors (verify what's loaded)
/pp list

# Remove problematic door
/pp delete <name>

# Recreate door
/pp create <name>

Advanced: Manual Recovery

If doors.yml becomes corrupted:

  1. Stop server
  2. Backup current file: cp doors.yml doors.yml.broken
  3. Try to fix YAML syntax using online validator
  4. Or restore from backup: cp doors.yml.backup doors.yml
  5. Start server and check console for errors

Next: Learn practical usage with the Usage Guide