VoxelSniper - Long range terrain editing

This is a discussion topic for the Ore project, VoxelSniper. View the full project on Ore for downloads and more information.


Snipe all the voxels.

Sponge 1.10.2 build: VoxelSniper 8.1.0 (Requires SpongeForge 1686+ or SpongeVanilla 108+)

Sponge 1.8.9 build: VoxelSniper-8.0.0-MC1.8.9-SNAPSHOT.jar

VoxelSniper is a brush based system which lets you make large edits to your minecraft world. The latest version for sponge is VoxelSniper version 8.0.0 which is a complete rewrite over version 5.171 (which was the last version targeting bukkit only).

Some Docs: VoxelSniper5 wiki
Github: VoxelSniper
IRC: #voxelbox on esper.net
Issues: VoxelSniper Issues

#Commands
/brush <brush> [args...] or /brush # (Alias: /b) By far the most common command that you’ll be using. This command does double duty by allowing you to set your current brush or brush size. When specified with a number (which may have decimals) this command will set your brush size. Otherwise it will set your brush (see the later section on available brushes).

/v [material] This command sets your primary material. If you don’t specify a material name then it will use the BlockState of your currently targeted block.

/vc # This command sets your voxel center point which is used by some brushes.

/vh # This command sets your voxel height which is used by some brushes.

/vr[material] This command selects your secondary material, it functions the same as the material command.

/u [n] This command will undo one or more of your recent changes. If the n argument is specified then n changes are undone, otherwise a single change is undone. By default 30 recent changes are stored per user, although this is modifiable with configuration. All undo history will be lost on server restart.

/uu <name> [n] This command undoes one or more changes from another player’s undo queue. If the n argument is specified then n changes are undone, otherwise a single change is undone. This command will still function if the player is offline, but undo history will be lost if the server restarts.

/vs range # This sets your maximum range. For example, if your range is set to 5 even if you are aiming at a target 15 blocks away your selected brush will still execute 5 blocks away from you.

#Brushes
This is a quick overview of available brushes, and their parameters. Unless specified all actions listed are triggered with your primary tool (right click with an arrow by default), a secondary action is sometimes mentioned which is triggered with your secondary tool (right click with gunpowder by default). If no secondary action is specified then the action of using your secondary tool will cause the target block to be changed to one block before your usual target block.

2.1 Shape Brushes

This category of brushes includes brushes which defile a region of the world to be acted on by your performers.

basic shapes.
All of these brushes take performers in the form [mMiIcC][mMiIcC] where the first character is your place performer and the second character is your replace performer. The material perform m will only place block types not states and will replace any block with your replace material sharing the same type. The combo performer c on the other hand will place your specifically selected block state and will only replace the exact state defined as your replace material. The ink performer is currently unused.

Available shape brushes are:

  • ball | b - A sphere with a radius defined by your brush size.
  • voxel | v - A cube with a side length of twice your brush size plus one.
  • disc | d - A flat disc with a radius defined by your brush size and a height of one.
  • discface | df - Same as the disc brush but aligned to the face of the block that you click.
  • snipe | s - A single block selection
  • cylinder | c - A cylinder with a radius defined by your brush size and a height /vh. The bottom of the cylinder can be offset by setting your voxel center value /vc
  • ellipse | el - An ellipse with radii defined by parameters.
  • ellipsoid | elo - A three-dimensional ellipsoid with radii defined by parameters.
  • voxeldisc | vd - Similar to the disc but defined by a square with a side length of 2*size+1.
  • voxeldiscface | vdf - Same as the voxeldisc brush but aligned to the face of the block that you click.
  • set - Lets you select two positions and creates a cuboid shape covering the region between your two points.
  • checkervoxeldisc | cvd Like a voxeldisc but it creates a checkerboard pattern

2.3 Effect Brushes

This category of brushes includes brushes which apply some effect to the region of the world defined by your shape.

Available effect brushes are:

  • biome | bio - Sets the biome of each column covered by your shape to a specified biome.
  • blendball | bb - Looks at the neighboring blocks of each block in the brush’s area of effect to determine which material is the most common neighbor. If the brush can find a most common neighboring material for a given block (this excludes ties), that block is changed to better match the blocks around it.
  • blenddisc | bd - Blends a disc shape.
  • blendvoxel | bv - Blends a voxel shape.
  • blendvoxeldisc | bvd - Blends a voxeldisc shape.
  • blob | splatblob Creates a randomized blob shape grown outwards from your target block.
  • canyon | ca Moves the terrain of the selected chunk up or down by a specified y modifier.
  • canyonselection | cas Select two points and it performs the same operation as the canyon brush to all overlapping chunks.
  • cleansnow | cls Removes floating slow tiles.

2.4 Misc Brushes

This category of brushes includes brushes don’t fit into any other category.

Available misc brushes are:

  • lightning - Strikes lighting at your target location.
6 Likes

A new version has been released for VoxelSniper, it is available for download here.


  • fix behaviour of erode brushes on ties to match older behaviour
  • fix selecting large trees with the tree brush
  • update jockey brush for latest spongeapi changes
  • add configuration for expiring player data after a period of time
  • actually load configuration, a new configuration file will be created on first load
  • reload configuration when /sponge reload is called
  • add ChangeBrushSizeEvent
  • fix error with splatter brushes
  • add --legacy flag to stencil brush to specify loading/saving the stencil with the mcedit schematic format
  • disable three-point circle brush
  • fix large trees not displaying properly in the info message
  • fix splatter brush parameters not being able to be set properly
  • fix overlay brush with gunpowder not adding a new layer of blocks

A new version has been released for VoxelSniper, it is available for download here.


No physics performers and a definitely release for minecraft version 1.10.2

A new version has been released for VoxelSniper, it is available for download here.


An update for spongeapi version 7 and minecraft 1.12

1 Like

Hello, I’m attempting to use VoxelSniper as one of my team likes to use it. I’m currently using FAWE and I have sponge version 7.1.6 RC3616 Will VoxelSniper work with it? I attempted the above link but it just gives me a 404 error. Also will VoxelSniper play nicely with FAWE or is that something I’d have to totally remove?

Can not open your Jenkins links.

A new version has been released for VoxelSniper, it is available for download here.


Long range terrain editing

Hello I have a small error when I want to make a stencilLists, by doing the following command / b sl in the game it puts “Error occured while executing command: 1” and in the console this:

[00:00:14] [Server thread/ERROR] [Sponge]: Error occurred while executing command ‘b sl AopList’ for source EntityPlayerMP[‘SpelliCosta’/104, l=‘world’, x=-28,40, y=9,88, z=-226,47]: 1

java.lang.ArrayIndexOutOfBoundsException: 1

at com.thevoxelbox.voxelsniper.brush.misc.StencilListBrush.parameters(StencilListBrush.java:318) ~[StencilListBrush.class:?]

at com.thevoxelbox.voxelsniper.command.VoxelBrushCommand.execute(VoxelBrushCommand.java:108) ~[VoxelBrushCommand.class:?]

at org.spongepowered.api.command.spec.CommandSpec.process(CommandSpec.java:388) ~[CommandSpec.class:1.12.2-2838-7.3.1-RC4079]

at org.spongepowered.common.command.SpongeCommandDispatcher.process(SpongeCommandDispatcher.java:355) ~[SpongeCommandDispatcher.class:1.12.2-2838-7.3.1-RC4079]

at org.spongepowered.common.command.SpongeCommandManager.process(SpongeCommandManager.java:360) [SpongeCommandManager.class:1.12.2-2838-7.3.1-RC4079]

at net.minecraft.command.ServerCommandManager.func_71556_a(SourceFile:665) [dh.class:?]

at net.minecraft.network.NetHandlerPlayServer.func_147361_d(NetHandlerPlayServer.java:962) [pa.class:?]

at net.minecraft.network.NetHandlerPlayServer.func_147354_a(NetHandlerPlayServer.java:941) [pa.class:?]

at net.minecraft.network.play.client.CPacketChatMessage.func_148833_a(SourceFile:37) [la.class:?]

at net.minecraft.network.play.client.CPacketChatMessage.func_148833_a(SourceFile:9) [la.class:?]

at org.spongepowered.common.event.tracking.phase.packet.PacketPhaseUtil.onProcessPacket(PacketPhaseUtil.java:219) [PacketPhaseUtil.class:1.12.2-2838-7.3.1-RC4079]

at net.minecraft.network.PacketThreadUtil$1.redirect$zlc000$impl$redirectToPhaseTracker(SourceFile:540) [hv$1.class:?]

at net.minecraft.network.PacketThreadUtil$1.run(SourceFile:13) [hv$1.class:?]

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_202]

at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_202]

at net.minecraft.util.Util.func_181617_a(SourceFile:46) [h.class:?]

at org.spongepowered.common.SpongeImplHooks.onUtilRunTask(SpongeImplHooks.java:325) [SpongeImplHooks.class:1.12.2-2838-7.3.1-RC4079]

at net.minecraft.server.MinecraftServer.redirect$zjg000$onRun(MinecraftServer.java:4682) [MinecraftServer.class:?]

at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:723) [MinecraftServer.class:?]

at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:397) [nz.class:?]

at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:668) [MinecraftServer.class:?]
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:526) [MinecraftServer.class:?]
    at java.lang.Thread.run(Thread.java:748) [?:1.8.0_202]

It is maybe me who is misunderstood the system with sponge for the files, the rename of the files in .txt etc …
but I followed the Wiki well so here it is.

thank you for helping me

Does this work for sponge 7.3?