Space Engineers

Space Engineers

2,304 ratings
Paint Gun - realistic painting for survival + special creative features
8
3
23
16
6
2
2
   
Award
Favorite
Favorited
Unfavorite
Type: Mod
Mod category: Script, Production, Other
File Size
Posted
Updated
2.188 MB
Aug 16, 2015 @ 5:12am
Jan 22 @ 4:09pm
100 Change Notes ( view )

Subscribe to download
Paint Gun - realistic painting for survival + special creative features

In 1 collection by Digi
Digi's Space Engineers mods
39 items
Description
This mod adds a Paint Gun tool which uses 'ammo' to slowly paint blocks (like welders).

What this is really useful for is painting blocks that are behind/between other blocks, like blocks behind landing gears, cramped large ship interiors, etc. without using large-area painting from the vanilla paint method.

Vanilla painting is still untouched but there is a mod linked at the end of the description to disable that if you want.


Feature list
  • Allows faction members to paint and skin ships (vanilla painting only allows major owner).
  • Fast color/skin switching using mouse scroll/shift+scroll.
  • Colors and skins shown on the HUD.
  • Block aiming works like welder + aim at harder to reach blocks by moving closer while aiming down sights (RMB).
  • Color+skin picking from other blocks and players (their selected color and skin for building, not their suit color and skin) using Shift+LG for the mode or Shift+RMB for instantly picking from aimed target.
  • Hide skins from this mod's palette by editing the config (either the config file or ingame by opening chat and press F2).
  • Easily replace color/skin/both on the entire ship in creative mode/creative tools with Shift+R.
  • Right-side GUI for target info (using TextAPI, it's optional).
  • *NEW* In-game config editing (Text API mod menu), open chat and press F2 to begin.
  • Have a purpose for gravel! (convert it to ammo for paint gun).
  • In-game help, just type in chat: /pg
  • Support for mod-added skins! See example mod: https://steamcommunity.com/sharedfiles/filedetails/?id=1860860182



Usage in survival
  • Make the tool (Paint Gun) in an assembler;
  • Make some ammo (Paint Chemicals) in the assembler as well;
  • Equip it from the G menu like any other tool;
  • Use scroll wheel or [] to pick a color;
  • Use shift+scroll wheel or shift + [] to pick a skin;
  • Aim at a block and hold click!



How it works in detail
In survival the paint process is not instant, and the speed depends on the difference between colors (if it's a totally different hue then it needs to first remove the color) and it also depends on the size and side surface area.

In creative it's always instant and doesn't need ammo.

You also have the replace-color feature in creative, using Shift+R to toggle the mode and click on a block to replace all blocks which have that color.

A small ship armor block will be painted really fast while a large ship large container will be painted really slowly.

The paint speed is also affected by the world's welder (for painting) and grinder (for removing paint) speed multipliers.

Multiple people painting will speed up the process just like welders/grinders.

Making one paint ammo blueprint gives you 1 unit and painting a block uses 1 on every update and it updates 10 times a second. The paint ammo is really small and lightweight, 1000 units having 1kg and a volume of 2L.

In survival you can't paint damaged (more than 10% damage) or below the red line, you'll need to repair/finish them before painting.

You can only paint grids that you own or are allied to the owner. The owner is determined by the player(s) that own the most blocks on the grid.
In contrast, vanilla game only allows painting on your owned grids, allies or small owners (players with at least 1 block owned on the grid) can not paint.



Commands & Hotkeys
Mod has some chat commands and hotkeys, can be seen by typing /pg in chat.



Config
The mod also has a client side config file that you can access at:
%appdata%/SpaceEngineers/Storage/500818376.sbm_PaintGun/paintgun.cfg

You can change the file while the game is running but you'll have to reload it manually by typing in chat: /pg reload.


Known Issues/To-Do/To-fix list
- Paint Chemicals (ammo mag) is considered explosive ammo (all ammo is, see bugreport: https://support.keenswh.com/spaceengineers/pc/topic/22815-railgun-sabot-explodes-when-in-a-container-that-is-destroyed )
- Selected skin, ApplySkin and ApplyColor from vanilla color picker menu are not retrievable by mods, therefore the selection for those is independent to the paint gun (feature request to vote: https://support.keenswh.com/spaceengineers/pc/topic/modapi-api-request-for-owned-skins-list-and-applycolorapplyskin ).
- Mod-added block skins will vanish from ships when you paste them, see the above bugreport.
- Having weapons turned off will not prevent this from working (since it's a rifle) but it will nag you about it being disabled, nothing I can do about that notification.
- Can no longer display vanilla block info for tools because it's being overwritten by the new hint system, textAPI is required to have the right side info (non-issue unless textAPI breaks).
- (FIXED) No way to know what skins local player owns, so all of them are shown and it's up to you to hide the ones that don't work using the config (open chat and press F2).
- (FIXED) UI doesn't quite line up on anything other than 16:9 aspect ratio.
- (FIXED) The screen and HUD palette shakes while holding the fire button (hardcoded behavior of the rifle).
- (FIXED) Use the game's color palette menu and selection.
- (FIXED) Painting near/at an incomplete block that can have damage effects will spawn those effects.
- (FIXED) Shift+ColorMenu, Shift+R and any other key that the mod uses will work when in menus (except chat), not fixable right now.



Related mods
Disable vanilla painting
Block skin example/test - For use with PaintGun
Concrete Tool - placing voxels in survival


XBox ?
This mod relies on clientside scripts and xbox does not allow scripts on the client, therefore it won't work for xbox.
Popular Discussions View All (18)
7
Feb 10, 2022 @ 8:43am
Custom armor skin - can't load texture from mod directory
typekcz
4
Apr 10, 2021 @ 10:44am
ArgumentOutOfRangeException from vanilla paint pallette while paingun mod is loaded
Sny
0
Oct 14, 2021 @ 1:09am
Painting grids in planes?
LBloxo
< >
831 Comments
kufber Jan 28 @ 11:12pm 
This is a mod that I refuse to play without. Thanks, Digi!
Digi  [author] Jan 22 @ 3:42pm 
It's just the error does make any sense, all my packets have a parameterless constructor already, so whatever is happening is unknown.

I talked to Seraph on discord and they didn't see the error lately anymore, it's likely that a specific player had an older mod version (from steam failing to update it as it likes to do) an that caused confusion for the server receiving it.

Other cause might be (I already checked this one for Seraph's mods and it's not it) that another mod uses the same network channel as this mod and sends unknown data to it, which is precisely why I don't crash the game on that receiver method.

I should modify the mod to print out sender and bytes so that next time it happens you can at least identify who sends it and ask'em to redownload the mod xD and the raw byte data so I can do more tests locally.
Vexo | davidmc971 Jan 22 @ 3:09pm 
I got the same error as Seraph, also found the corresponding line of code on GitHub:
https://github.com/THDigi/PaintGun/blob/master/Data/Scripts/PaintGun/Libraries/NetworkLib/Network.cs#L129

Best regards
Seraph Jan 14 @ 7:30pm 
as I still can't message you on discord;
01:02:09.6405 [INFO] Keen: Paint Gun ERROR: No parameterless constructor found for Digi.NetworkLib.PacketBase
at ProtoBuf.Meta.TypeModel.ThrowCannotCreateInstance(Type type)
at proto_2042(ProtoReader , State& , Object )
at ProtoBuf.Meta.TypeModel.DeserializeAny(ProtoReader reader, State& state, Type type, Object value, Boolean noAutoCreate)
at ProtoBuf.Meta.TypeModel.Deserialize(Stream source, Object value, Type type, SerializationContext context)
at ProtoBuf.Serializer.Deserialize[T](Stream source)
at Sandbox.ModAPI.MyAPIUtilities.VRage.Game.ModAPI.IMyUtilities.SerializeFromBinary[T](Byte[] data)
at Digi.NetworkLib.Network.ReceivedPacket(UInt16 channelId, Byte[] serialized, UInt64 senderSteamId, Boolean isSenderServer)
Digi  [author] Jan 14 @ 6:15pm 
Can you post the log? here or on discord or wherever :P
Seraph Jan 14 @ 3:54pm 
I've tried validating and reinstalling a couple of times, the message still remained however, and after uninstalling this mod the ram usage issues with the server also left along with it. It seems to be an issue with the networking library.
Seraph Jan 10 @ 10:55pm 
That explanation makes a lot of sense, it would at least explain the memory issues the server is having currently. Thanks for the help! I will try validating all the files or redownloading them. And no worries about discord, I tried messaging you to give context for adding you but I couldn't, likely because we don't share a server, I need to leave some servers so I can join the SE discord
Digi  [author] Jan 10 @ 10:22pm 
@Seraph
That's really strange, can you do a game verification in steam first, it sounds like there's something wrong either with game files or downloaded mod files (verfiication should validate workshop too).

If it persists after that please DM me again on discord (I think you can do that without even adding but adding is fine if it's required), I mistakingly declined it as I saw no common servers which was before I saw your message here.
Digi  [author] Jan 10 @ 10:20pm 
@Shurlan
Yeah it is rather odd and inconsistently checked, sometimes they just compare the vector3 float of HSV (which is 0 to 1 range), other places they compare the color packed as a single integer (which is what I'm using)... so depending on how you get the color applied it might do armor separation or might not, it's just so confusing I don't know what to even do about it xD

Initially I converted to RGB and compared those RGB values individually, but that lead to other weirdness where the same RGB color had armor edges between itself if you re-applied it after a grid repaste/world reload (color gets serialized).
Seraph Jan 10 @ 11:59am 
Hey, I got a popup about the mod having an exception (no parameterless constructor found), I've send you a friend request to send you the link to the log file from the server.