Home › Documentation › Configuration · origen_graffiti
Configuration is split across two files:
config.lua — essential settings for server owners (language, admins, shop)config.advanced.lua — technical tuning (render, sync, rate limits, distances)Only touch config.advanced.lua if you are measuring impact (TPS, latency, network load). Change one value at a time and test with 10+ players. If things get worse, revert.
| Variable | Default | Description |
|---|---|---|
Config.Language | 'en' | Locale language — matches a file in locales/*.json |
Config.AdminGroups | {'admin','god','superadmin'} | Groups with access to admin panel and commands |
Config.AdminCommand | 'graffiti_admin' | Chat command to open the admin panel |
| Variable | Default | Description |
|---|---|---|
Config.Shop.enterRadius | 2.5 | Proximity radius in meters to open the shop |
Config.Shop.sprayItem | 'graffiti_spray' | Inventory item name for spray cans |
Config.Shop.eraserItem | 'graffiti_eraser' | Inventory item name for erasers |
Config.Shop.defaultDurability | 100 | Initial durability injected at purchase |
Config.Shop.durabilityUvThreshold | 0.3 | Accumulated UV distance (0–1) to consume 1 durability point |
Config.Shop.eraserDurabilityPerUse | 25 | Durability cost per full tag erase |
Shop locations — add as many vector4(x, y, z, heading) entries as needed:
Config.Shop.locations = {
vector4(-1123.5, -1440.04, 5.19, 304.08),
}Default shop catalog:
| ID | Type | Label | Price | Color |
|---|---|---|---|---|
borrador | eraser | Eraser | $150 | — |
spray_custom | spray_custom | Free Color Spray | $350 | any |
spray_negro | spray_preset | Black Spray | $200 | #111111 |
spray_blanco | spray_preset | White Spray | $200 | #F0F0F0 |
spray_rojo | spray_preset | Red Spray | $220 | #CC2222 |
spray_azul | spray_preset | Blue Spray | $220 | #2255CC |
spray_amarillo | spray_preset | Yellow Spray | $220 | #DDC000 |
spray_verde | spray_preset | Green Spray | $220 | #228822 |
spray_naranja | spray_preset | Orange Spray | $220 | #CC6600 |
spray_violeta | spray_preset | Violet Spray | $220 | #8822CC |
spray_rosa | spray_preset | Pink Spray | $220 | #CC3388 |
spray_celeste | spray_preset | Light Blue Spray | $220 | #33AADD |
Optionally delete old graffiti on resource start:
Config.AutoPurge = {
enabled = false,
days = 30, -- delete graffiti older than this many days
}Optionally cap how many graffitis can exist within a radius before new sessions are blocked:
Config.ZoneGraffitiLimit = {
enabled = false,
radius = 60.0, -- meters
maxTags = 8,
}| Variable | Default | Description |
|---|---|---|
Config.PaintMaxDistance | 8.0 | Max distance in meters to paint on a canvas |
Config.BrushRadiusMin | 0.002 | Minimum brush size (UV) |
Config.BrushRadiusMax | 0.08 | Maximum brush size (UV) |
Config.BrushRadiusDefault | 0.012 | Default brush size on session start |
Config.SprayDistMin | 0.4 | Min camera distance for spray scaling |
Config.SprayDistMax | 7.0 | Max camera distance for spray scaling |
Config.SprayRadiusMulClose | 0.78 | Radius multiplier when camera is close (tighter spray) |
Config.SprayRadiusMulFar | 1.45 | Radius multiplier when camera is far (wider spray) |
Config.SprayIntensityMulClose | 1.15 | Intensity multiplier close |
Config.SprayIntensityMulFar | 0.4 | Intensity multiplier far |
| Variable | Default | Description |
|---|---|---|
Config.MaxStrokesPerTag | 4000 | Max strokes per tag (payload + DB load) |
Config.MinStrokesPerSave | 700 | Saves with fewer strokes than this are rejected |
Config.CollaborationMaxStrokesPerSecond | 90 | Server-side rate limit per player (1s window) |
| Variable | Default | Description |
|---|---|---|
Config.CollaborationSessionTimeout | 1800 | Session auto-close after this many seconds of inactivity |
Config.CollaborationJoinDistance | 8.0 | Max distance in meters to join an active session |
Config.SpectatorDistance | 28.0 | Radius to see live strokes without joining |
Config.SyncLoadRadius | 200.0 | Server search radius for tags per player |
Config.SyncMaxTagsPerQuery | 180 | Max tags returned per sync query |
Config.StreamDistance | 70.0 | Distance in meters to create/destroy a DUI for each graffiti |
Config.ServerCellCheckIntervalMs | 3000 | Interval in ms for zone-change detection thread |
| Variable | Default | Description |
|---|---|---|
Config.DuiResolution | 256 | DUI canvas resolution in pixels — must be power of 2 (256, 512, 1024) |
Config.TagAlpha | 190 | Rendered canvas opacity (0–255) |
Config.TagTimeBrightnessEnabled | true | Dynamic brightness based on in-game time |
Config.TagNightStartHour | 21 | Night mode start hour |
Config.TagNightEndHour | 6 | Night mode end hour |
Config.TagDayBrightness | 1.00 | Brightness multiplier during day (1.0 = original) |
Config.TagNightBrightness | 0.40 | Brightness multiplier during night |
Config.EraseTagDuration | 15000 | Hold duration in ms to erase a tag |
Config.CanvasOffsetStep | 0.005 | Canvas offset adjustment step in meters per keypress |
Config.CanvasOffsetMin | -0.30 | Max inward offset (30 cm into wall) |
Config.CanvasOffsetMax | 0.50 | Max outward offset (50 cm from wall) |