Styling & Effects
Learn how to create visually stunning text overlays with colors, gradients, animations, and backgrounds.
Color Options
Section titled “Color Options”Solid Colors
Section titled “Solid Colors”Apply a single color to your entire text:
Command:
/emberstextapi sendcustom @p {color:0xFF0000} 100 "Red text"API:
ImmersiveMessage.builder(100, "Red text") .color(0xFF0000) .build();Color Format
Section titled “Color Format”Colors use hexadecimal RGB format: 0xRRGGBB
| Color | Hex Code | Example |
|---|---|---|
| Red | 0xFF0000 | ■ |
| Green | 0x00FF00 | ■ |
| Blue | 0x0000FF | ■ |
| Yellow | 0xFFFF00 | ■ |
| Cyan | 0x00FFFF | ■ |
| Magenta | 0xFF00FF | ■ |
| White | 0xFFFFFF | ■ |
| Black | 0x000000 | ■ |
Gradients
Section titled “Gradients”Create smooth color transitions across your text:
Two-Color Gradient:
/emberstextapi sendcustom @p {gradient:[0xFF0000,0x0000FF]} 100 "Red to Blue"Multi-Color Gradient:
/emberstextapi sendcustom @p {gradient:[0xFF0000,0xFFFF00,0x00FF00]} 100 "Rainbow!"API:
// Two colorsImmersiveMessage.builder(100, "Gradient") .gradient(0xFF0000, 0x0000FF) .build();
// Multiple colorsImmersiveMessage.builder(100, "Rainbow") .gradient(0xFF0000, 0xFF7F00, 0xFFFF00, 0x00FF00, 0x0000FF, 0x8B00FF) .build();Popular Gradient Combinations
Section titled “Popular Gradient Combinations”Sunset:
.gradient(0xFF6B6B, 0xFF8E53, 0xFFB347, 0xFFD700)Ocean:
.gradient(0x1E3A8A, 0x3B82F6, 0x06B6D4, 0x14B8A6)Fire:
.gradient(0xFF0000, 0xFF4500, 0xFFA500, 0xFFFF00)Night Sky:
.gradient(0x000033, 0x000066, 0x6600CC, 0xCC00FF)Gold:
.gradient(0xFFD700, 0xFFA500, 0xFF8C00)Text Animations
Section titled “Text Animations”Typewriter Effect
Section titled “Typewriter Effect”Make text appear character by character:
Command:
/emberstextapi sendcustom @p {typewriter:2.0f} 150 "Typing effect..."With Centering:
/emberstextapi sendcustom @p {typewriter:2.0f,typewriterCenter:1b} 150 "Centered typing"API:
ImmersiveMessage.builder(150, "Typing effect...") .typewriter(2.0f, false) .build();
// With centeringImmersiveMessage.builder(150, "Centered typing") .typewriter(2.0f, true) .build();Speed Guidelines
Section titled “Speed Guidelines”| Speed | Characters/Tick | Effect |
|---|---|---|
0.5f | 0.5 | Very slow, dramatic |
1.0f | 1 | Natural reading pace |
2.0f | 2 | Quick, snappy |
3.0f | 3 | Fast |
5.0f+ | 5+ | Very fast |
Shake Effects
Section titled “Shake Effects”Add motion to your text:
Whole-Text Shake
Section titled “Whole-Text Shake”The entire text moves as one unit:
Wave Shake:
/emberstextapi sendcustom @p {shakeWave:1.5f} 100 "Smooth wave motion"Circular Shake:
/emberstextapi sendcustom @p {shakeCircle:1.5f} 100 "Circular movement"Random Shake:
/emberstextapi sendcustom @p {shakeRandom:2.0f} 100 "Random jitter"API:
.shake(ShakeType.WAVE, 1.5f).shake(ShakeType.CIRCULAR, 1.5f).shake(ShakeType.RANDOM, 2.0f)Character-Level Shake
Section titled “Character-Level Shake”Each character moves independently:
Wave (Per Character):
/emberstextapi sendcustom @p {charShakeWave:1.5f} 100 "Wavy letters"Circular (Per Character):
/emberstextapi sendcustom @p {charShakeCircle:1.5f} 100 "Circular letters"Random (Per Character):
/emberstextapi sendcustom @p {charShakeRandom:2.0f} 100 "Chaotic letters!"API:
.charShake(ShakeType.WAVE, 1.5f).charShake(ShakeType.CIRCULAR, 1.5f).charShake(ShakeType.RANDOM, 2.0f)Intensity Recommendations
Section titled “Intensity Recommendations”| Intensity | Effect | Best Use |
|---|---|---|
0.5f | Subtle | Ambient effects |
1.0f | Noticeable | Standard emphasis |
1.5f | Moderate | Attention-grabbing |
2.0f | Strong | Dramatic moments |
3.0f+ | Extreme | Chaos, damage, alerts |
Obfuscation
Section titled “Obfuscation”Create scrambled text with optional reveal animations:
Always Obfuscated:
/emberstextapi sendcustom @p {obfuscate:1b} 100 "Scrambled!"With Reveal Animations:
Left to Right:
/emberstextapi sendcustom @p {obfuscate:1b,obfuscateReveal:"LEFT_TO_RIGHT"} 120 "Revealing..."Right to Left:
/emberstextapi sendcustom @p {obfuscate:1b,obfuscateReveal:"RIGHT_TO_LEFT"} 120 "Revealing..."Center Outward:
/emberstextapi sendcustom @p {obfuscate:1b,obfuscateReveal:"CENTER_OUT"} 120 "Revealing..."Random:
/emberstextapi sendcustom @p {obfuscate:1b,obfuscateReveal:"RANDOM"} 120 "Revealing..."API:
.obfuscate("LEFT_TO_RIGHT").obfuscate("RIGHT_TO_LEFT").obfuscate("CENTER_OUT").obfuscate("RANDOM")Backgrounds
Section titled “Backgrounds”Tooltip-Style Background
Section titled “Tooltip-Style Background”Simple solid color background with optional gradient border:
Solid Background:
/emberstextapi sendcustom @p {bgColor:0x000000} 100 "Black background"With Gradient Border:
/emberstextapi sendcustom @p {bgColor:0x000000,bgGradient:[0xFF0000,0x0000FF]} 100 "Fancy border"API:
ImmersiveMessage.builder(100, "With background") .backgroundColor(0x000000) .backgroundGradient(0xFF0000, 0x0000FF) .build();Background Color Suggestions
Section titled “Background Color Suggestions”Dark Backgrounds:
- Pure Black:
0x000000 - Dark Gray:
0x1A1A1A - Dark Blue:
0x000033 - Dark Red:
0x330000
Semi-Transparent Feel:
- Use darker colors (0x000000 - 0x333333)
- Pair with lighter text for contrast
Textured Background
Section titled “Textured Background”Use custom textures for backgrounds:
/emberstextapi sendcustom @p { background:"minecraft:textures/gui/demo_background.png", backgroundMode:"STRETCH", backgroundWidth:256, backgroundHeight:64, backgroundPaddingX:10, backgroundPaddingY:5} 100 "Textured!"API:
ImmersiveMessage.builder(100, "Textured!") .background( "minecraft:textures/gui/demo_background.png", "STRETCH", 256, 64, // width, height 10, 5 // paddingX, paddingY ) .build();Background Modes
Section titled “Background Modes”| Mode | Behavior |
|---|---|
STRETCH | Stretches texture to fit dimensions |
CROP | Crops texture to fit dimensions |
TILE | Repeats texture to fill space |
Custom Textures
Section titled “Custom Textures”Place custom textures in:
assets/emberstextapi/textures/background/your_texture.pngReference as:
"emberstextapi:textures/background/your_texture.png"Positioning
Section titled “Positioning”Anchors
Section titled “Anchors”Choose where your message appears on screen:
TOP_LEFT TOP_CENTER TOP_RIGHT
CENTER_LEFT CENTER_CENTER CENTER_RIGHT
BOTTOM_LEFT BOTTOM_CENTER BOTTOM_RIGHTCommand:
/emberstextapi sendcustom @p {anchor:"CENTER_CENTER"} 100 "Screen center"API:
.anchor(TextAnchor.CENTER_CENTER).anchor(TextAnchor.TOP_LEFT).anchor(TextAnchor.BOTTOM_RIGHT)Alignment
Section titled “Alignment”Control how text aligns relative to its anchor:
Left-Aligned:
.anchor(TextAnchor.CENTER_LEFT).align(TextAlignment.LEFT)Text extends right from anchor point.
Center-Aligned:
.anchor(TextAnchor.CENTER_CENTER).align(TextAlignment.CENTER)Text centers on anchor point.
Right-Aligned:
.anchor(TextAnchor.CENTER_RIGHT).align(TextAlignment.RIGHT)Text extends left from anchor point.
Offsets
Section titled “Offsets”Fine-tune position with pixel offsets:
Command:
/emberstextapi sendcustom @p {offsetX:50,offsetY:-30} 100 "Offset text"API:
.anchor(TextAnchor.CENTER_CENTER).offsetX(50) // Move 50 pixels right.offsetY(-30) // Move 30 pixels upText Formatting
Section titled “Text Formatting”Custom Fonts
Section titled “Custom Fonts”Use built-in or custom fonts:
Command:
/emberstextapi sendcustom @p {font:"minecraft:uniform"} 100 "Uniform font"API:
.font("minecraft:uniform").font("minecraft:alt")Available Fonts
Section titled “Available Fonts”minecraft:default- Standard Minecraft fontminecraft:uniform- Uniform spacingminecraft:alt- Alternative font
Custom Fonts
Section titled “Custom Fonts”Place font JSON in:
assets/emberstextapi/font/your_font.jsonReference as:
.font("emberstextapi:your_font")Text Wrapping
Section titled “Text Wrapping”Wrap long text to multiple lines:
Command:
/emberstextapi sendcustom @p {wrap:200} 150 "This is a very long message that will automatically wrap to multiple lines when it exceeds 200 pixels in width"API:
ImmersiveMessage.builder(150, "Long message...") .wrap(200) // Wrap at 200 pixels .build();Drop Shadow
Section titled “Drop Shadow”Add shadow for better readability:
Command:
/emberstextapi sendcustom @p {shadow:1b} 100 "Text with shadow"API:
.shadow(true)Fade Effects
Section titled “Fade Effects”Control how messages appear and disappear:
Command:
/emberstextapi sendcustom @p {fadeIn:40,fadeOut:40} 200 "Smooth transitions"API:
.fadeIn(40) // 2 seconds.fadeOut(40) // 2 secondsFade Timing Recommendations
Section titled “Fade Timing Recommendations”| Duration | Ticks | Best For |
|---|---|---|
| Instant | 0 | Urgent alerts |
| Quick | 10 | Fast notifications |
| Standard | 20 | Normal messages |
| Smooth | 40 | Cinematic effects |
| Slow | 60+ | Dramatic scenes |
Combining Effects
Section titled “Combining Effects”Create stunning visuals by combining multiple effects:
Example 1: Dramatic Announcement
Section titled “Example 1: Dramatic Announcement”/emberstextapi sendcustom @p { anchor:"CENTER_CENTER", gradient:[0xFFD700,0xFFA500], typewriter:2.0f, typewriterCenter:1b, fadeIn:30, fadeOut:30, shadow:1b, bgColor:0x000000} 200 "BOSS BATTLE"API:
ImmersiveMessage.builder(200, "BOSS BATTLE") .anchor(TextAnchor.CENTER_CENTER) .gradient(0xFFD700, 0xFFA500) .typewriter(2.0f, true) .fadeIn(30) .fadeOut(30) .shadow(true) .backgroundColor(0x000000) .build();Example 2: Quest Objective
Section titled “Example 2: Quest Objective”/emberstextapi sendcustom @p { anchor:"TOP_CENTER", align:"CENTER", color:0xFFFFFF, offsetY:20, shadow:1b, bgColor:0x1A1A1A, bgGradient:[0x4A4A4A,0x2A2A2A]} 1000 "Collect 10 Ancient Crystals"Example 3: Warning Message
Section titled “Example 3: Warning Message”/emberstextapi sendcustom @p { anchor:"CENTER_CENTER", color:0xFF0000, shakeRandom:2.0f, shadow:1b, bgColor:0x330000, bgGradient:[0xFF0000,0x660000]} 80 "⚠ DANGER ⚠"Example 4: Secret Reveal
Section titled “Example 4: Secret Reveal”/emberstextapi sendcustom @p { anchor:"BOTTOM_CENTER", obfuscate:1b, obfuscateReveal:"CENTER_OUT", gradient:[0x8B00FF,0xFFFFFF], fadeIn:20, offsetY:-50, shadow:1b} 150 "The truth is revealed..."Example 5: Achievement Style
Section titled “Example 5: Achievement Style”/emberstextapi sendcustom @p { anchor:"TOP_RIGHT", align:"RIGHT", gradient:[0xFFD700,0xFFFF00], typewriter:3.0f, fadeIn:20, fadeOut:60, offsetX:-10, offsetY:10, shadow:1b, background:"minecraft:textures/gui/achievement/achievement_background.png", backgroundMode:"STRETCH", backgroundWidth:200, backgroundHeight:50, backgroundPaddingX:8, backgroundPaddingY:8} 100 "Achievement Unlocked!"Design Best Practices
Section titled “Design Best Practices”Readability
Section titled “Readability”- Use drop shadow for text over backgrounds
- High contrast between text and background colors
- Appropriate font size (use wrapping for long text)
- Limit shake intensity for important messages (keep ≤1.5f)
Performance
Section titled “Performance”-
Avoid too many simultaneous effects
- Limit to 2-3 active animations per message
- Character shake + gradient is more intensive than solid color
-
Use appropriate durations
- Don’t set infinite duration unless necessary
- Clean up tracked messages when done
User Experience
Section titled “User Experience”-
Don’t block critical UI elements
- Avoid CENTER_CENTER for long-duration messages
- Keep hotbar area clear (avoid BOTTOM_CENTER)
-
Match effects to content
- Subtle effects for ambient messages
- Dramatic effects for important events
- Shake for damage/alerts, typewriter for dialogue
-
Consistent styling
- Use similar colors/effects for related messages
- Create a visual language for your mod/server
Color Palettes
Section titled “Color Palettes”Fantasy Theme
Section titled “Fantasy Theme”// Royal.gradient(0x4B0082, 0x9370DB, 0xDDA0DD)
// Mystic.gradient(0x00CED1, 0x48D1CC, 0xAFEEEE)
// Arcane.gradient(0x8B00FF, 0x9932CC, 0xBA55D3)Modern Theme
Section titled “Modern Theme”// Neon.gradient(0xFF1493, 0x00FFFF, 0x7FFF00)
// Corporate.gradient(0x1E3A8A, 0x3B82F6, 0x60A5FA)
// Sunset.gradient(0xFF6B6B, 0xFF8E53, 0xFFB347)Game Theme
Section titled “Game Theme”// Health.gradient(0xFF0000, 0xFF6B6B)
// Experience.gradient(0x00FF00, 0x7FFF00)
// Mana.gradient(0x0000FF, 0x4169E1)