GithubHelp home page GithubHelp logo

sbox-issues's Introduction

S&box Issues

This is the s&box issue tracker. You can report bugs and request features here. This is not a place to ask for help.

Please add a 👍 thumbs up reaction on issues as an upvote to track priority from the community, instead of saying "+1" or "bump".

The issues are triaged and organised in the s&box tracker project.

Help and Support

This is not the place for help and support. You can ask for help from the community as well as discuss game updates on the official Discord server.

Security Exploits

If you've found a security exploit, please report it by visiting https://facepunch.com/security

Reporting Bugs

Please follow these guidelines when reporting a bug or crash:

  • Please don't report bugs with games or addons - report them to the author.
  • Please be thorough in your bug report. Tell us everything.
  • If you can recreate the bug give us a step by step.
  • Make sure your bug hasn't already been reported.
  • Include any relevant logs from your logs folder.

Requesting Features

Please follow these guidelines when requesting a feature:

  • Tell us why you need this feature, what does it add, what have you tried.
  • Make sure your feature hasn't already been requested.

Proton

For compatibility issues with Proton refer to this issue.

Other Resources

sbox-issues's People

Contributors

adamsai avatar cheatoid avatar garrynewman avatar handsomematt avatar maxlebled avatar mozi-h avatar nolankicks avatar ognik5377 avatar qxxst avatar robotboy655 avatar xezno avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sbox-issues's Issues

UserInput.IsPressed() unreliable

When using Player.Tick() IsPressed() works reliably on the local machine but on remote machines it will fire multiple times.

When using Panel.Tick() it will fire multiple times on the local machine and remote machine and won't ever fire when setting your fps at 30.

Add Keyboard Shortcuts to TextEntry fields

Currently, the cursor does not move any differently when navigating across text with ctrl held down in TextEntry fields. This feature request lists out what is needed for S&box's TextEntry fields to get on par with software such as Windows Notepad (which should serve as a decent base).

Rules vary across environments, so these were written when testing with Windows Notepad as it provides the bare minimum when it comes to text editing environments.
While the sample TextEntry fields in S&box are not multiline, I think it would be wise to allow for the possibility of multiline TextEntry fields in the future, so the rules here are written with that in mind (thus the term newline being mentioned in several rules).

Movement subrules have been written out in the form of regex for precision.
^ signifies the beginning of input, which in this case is right after the cursor.
$ signifies the end of input, which in this case is right before the cursor/

  • ctrl+RIGHT
    next character is newline -> move right to the length of /^\n\t* */
    next character is " " or "-" -> move right to the length of /^-* +/
    next character is tab -> move right to the length of /^\t* */
    else -> move right to the length of /^[^- \n\t]+-*\t* */

  • ctrl+LEFT
    previous character is newline -> move left one character
    previous character is "-" -> move left to the length of /\S+$/
    else -> move left to the length of /[^- \t]+\t* *$/

  • ctrl+BACKSPACE
    use ctrl+LEFT algorithm, but erase text passed over

  • HOME
    move cursor to after previous newline (or to beginning of text)

  • ctrl+HOME
    move cursor to beginning of text

  • END
    move cursor to before next newline (or to end of text)

  • ctrl+END
    move cursor to end of text

Hashcode changes on hotreload

While looking for a way to detect hotreloads @Jake-Rich figured out that this works:

When he showed me this I noticed that this could introduce bugs on code that relies on it, especially collections like Dictionary, Hashtable and HashSet.

modeldoc: resize per axis

Scale per axis is useful for fitting imported modular models to the source grid.

This model has been scaled on the y axis. We can do this in hammer but not in modeldoc (I think?)
image

ConsoleSystem.Run doesn't convert objects to strings

public static ConsoleResult Run(string command, params object[] arguments) takes objects as parameters but tries to cast them to a string meaning it will throw exceptions unless you pass in a string.

ServerCmd will automatically parse string -> type but Angles.ToString() is a different format than Angles.Parse() making you manually serialize angles if you want to pass them as a command. By that same token, passing rotation directly would be nice.

Expose Post Processing Tool effects to C#

What can't you do?
The SDK has a bunch of post processing effects in the post processing tool that would be great if exposed, otherwise they are just tied to map triggers

How would you like it to work?
Maybe some variables on the camera or having it's own post processing layer that can be added to. I anticipate there might be multiple overlapping effects as with the tool so maybe being able to construct those in an object and then apply it in bulk on the camera? I yield to any other ideas

What have you tried?
Only DoF post processing is available

Additional context
You can see all the available ones here: https://developer.valvesoftware.com/wiki/Half-Life:_Alyx_Workshop_Tools/Postprocessing_Editor

The tool has support for layer masks which would be cool to have down the line for more complex processing, might even be a neat idea to have the resultant .vpost from that tool be importable, kind of like a material file.

GPU Baking

It'd be nice to have GPU Baking for Hammer like Layla teased on twitter.

image

ModelDoc: AddMeshes selects wrong path

Describe the bug

When adding meshes to a new model in ModelDoc the Add Meshes adds the path of a model as the following: addons/addon_name/models/model_name.fbx

When it should be models/model_name.fbx

You can easily workaround this by editing the path manually and removing addons/name, but the error upon initial import is confusing.

To Reproduce

  1. Go to ModelDoc, AddMeshes and select a mesh from your addon folder.
  2. Save / Compile.
  3. See error

Hammer excludes first five characters from "map" console command used to run the map after build if the map is outside `myaddon\maps`

Describe the bug
When building a map, no matter whether it is a directory or filename, the first five letters are truncated. For example, when the .vmap file is in sbox\addons\addon\mapname.vmap, the command Hammer uses becomes map me. When nested in directories, like for example sbox\addons\addon\source\map\mapname.vmap, the command becomes map e\map\mapname

To Reproduce

  1. Create an addon folder in addons (# of characters in this folder doesn't matter)
  2. Open Hammer
  3. Create a new .vmap
  4. Save the .vmap in the addon folder
  5. Open the build window. The Console Commands section should show the incorrectly formatted command. Upon building, the game will say it can't find the map, due to the omitted characters.

Expected behavior
Hammer should be doing map mapname if the .vmap is not stored in any directories, and map source\map\mapname if it is (Using the previous file structure example)

SetMaterial on ModelEntity

What can't you do?

Change material on a ModelEntity.

How would you like it to work?

ModelEntity.SetMaterial("material_name")

What have you tried?

No obvious API for changing it on ModelEntity, ModelEntity.Model or the ModelEntity.SceneObject.

mat_fullbright and its variants show a black void with only viewmodel visible in regular executable, but not in sbox-dev

Had this issue since I joined the dev preview on the 21st, only just now actually remembered to report it now that I have the issue tracker on my mind. Will try to be more vigilant.

When changing to mat_fullbright and its variants via the top bar in the console, only a black void shows, with the exception of the viewmodel, and a few others depending on the map. On testmap, the water shows, and on test/velocity, instead of some variants not showing the viewmodel, it shows a sort of ghosty version of it instead.

Just in case they're relevant, my specs are:
Ryzen 5 2600
GTX 1080ti
Windows 10 20H2

sbox.fullbright.bug.testmap.mp4
sbox.fullbright.bug.dm_testingmap_02_lt_int.mp4
sbox.fullbright.bug.velocity-vpk.mp4

EDIT: After a bit more investigation, I found that fullbright and its variants work when in sbox-dev, but not the regular executable.

Maxplayers isn't set/enforced

Ran into this when I was testing to submit another issue. Don't know if this is intended or not.
Last time this happened, the game crashed shortly after he spawned, although I don't have footage, and I don't know if the crash was related to him joining or not.

Unsure if this also happens with people who aren't friends, although I'm inclined to assume not, since I haven't had any random people join in the past when running a listen server with a player limit of 1.

sbox.friends.override.player.limit.mp4

Antialiasing Issues

It may not be the best idea to report this issues for the current stage of game, but it is there, i need game with no aa for own purposes

In Game:

With 8x MSAA

image

With 0/1 (no MSAA)

image

Steps to reproduce: open gameinfo.gi and change "MSAADefaultNonVR" "4" to 0/1. When value is more than 1 - game looks fine, when is 0/1 the game becomes brighter and feels like an oversaturated bloom

In Dev Tools:

In Asset Browser -> Tools -> Options you can change AA for your purposes, and there is 16x MSAA, it crashes Hammer, and broke ModelDoc viewport

With 8x MSAA

image

With 16x MSAA

image

Whitelist Json

System.Text.Json.JsonSerializer
System.Text.Json.JsonSerializerOptions
System.Text.Json.Serialization.JsonIgnore
System.Text.Json.Serialization.JsonInclude

It may be possible to whitelist the entire System.Text.Json.* namespace but not sure if there is anything dangerous there.

modular fences aren't modular

fences, kerbs, and walls are on unity cm grid, not source grid.
They're 3 meters long instead of 128 units, so they don't snap to the grid and are not modular.
image

They should be resized to 128 long and probably renamed to reflect source grid (ex. wall_64_128 instead of wall_125_300)

If resize per axis is added to modeldoc, that can just be applied to all of these and fix it instantly.

Material Editor compiling textures to wrong directories

I have a material sbox\addons\fortwars\materials\fortwars\2x3_blue.vmat with a source 2x3_blue_color.png.

Initially the texture appears fine in preview, until saved and I get the following:

image

With the following error spammed:

Texture manager doesn't know about texture "materials/fortwars/2x3_blue_color_png_62858750.vtex" - returning error texture in CTextureManagerDx11::GetResourceView

The texture is getting compiled to sbox\fortwars\materials\fortwars\2x3_blue_color_png_62858750.vtex_c when it should be sbox\addons\fortwars\materials\fortwars\2x3_blue_color_png_62858750.vtex_c.

You can workaround this for now by moving the compiled textures to where they should be.

Addon/Gamemode compression, encryption and security.

How would you like it to work?
Similar to how Garry's Mod had access to the LZMA compression algorithm through util.Compress and util.Decompress, could that be replaced with access to LZ4 which on paper is a much faster option?

Additional context
LZ4 used alongside AES (and the AES-NI instructions built into CPU's of the past decade or so) and OpenSSL or LibSodium could be used as an incredibly fast, secure, signed packaging method for gamemodes. LZ4 can net gigabytes per second for random access on either normal or HC (high compression) modes. This is perfect for a release system, you work on the branch of your gamemode using hot-loading and once you are done, you sign it and secure it through the online portal which could potentially also allow you to set up a CDN-like system for downloading and loading the content on the client. Where AES and OpenSSL come in are encryption and signing/verifying packages, both used hand in hand, working together almost to load the content and prevent any potential tampering/man-in-the-middle attacks that could arise (though that is a very unlikely scenario.) This could greatly benefit S&box, and I do feel that as the successor to Garry's Mod it should have features that help content creators secure their own work and prevent it from being stolen.

SCSS Ampersand behavior isn't correct

I'm not sure how deep you guys are trying to replicate SCSS & HTML but there's behavior that I can see is incorrect/doesn't work

.main {
  &:disabled {
    background-color: red;
  }
}
<div class="main">
</div>

Expected: Element is not red (i.e The element goes red when the disabled attribute is added to the element)
Actual: The element is red

.main {
  display: flex;
  align-items: center;

  &__logo {
    background: url(/ui/settlers-logo.png);
    background-size: contain;
    background-repeat: no-repeat;
    width: 305px;
    height: 184px;
  }
<div class="main">
  <div class="main__logo"></div>
</div>

Expected: .main__logo to be generated
Actual: Does not appear to be created, if I create the class manually (i.e. .main__logo) it'll show up.

launchSettings.json gets generated in the wrong location

After the changes with where addon files are, the ProjectGen.exe now generates the launchSettings.json in the wrong location. This causes the project to not be launchable from visual studio.

Generates in: sbox\addons\addon\Properties\launchSettings.json
Should be in: sbox\addons\addon\Code\Properties\launchSettings.json

scss: support hsl colors

hsl is currently not supported, it's a really nice way to control color properly.

a use case would be a health bar for example where hsl(0 => 100, 100%, 50%) represents a nice hue shift from red to green.

Triggers defined in fgd not appearing in-game

Here's my fgd:

@SolidClass base(Trigger) = trigger_timer_start :
	"A trigger that starts the timer on exit."
[
]

@SolidClass base(Trigger) = trigger_timer_end :
	"A trigger that ends the timer on enter."
[
]

It shows up in Hammer but when compiling the map and doing showtriggers command the custom triggers do not show. Other triggers, like trigger_teleport, do show, but triggers defined in sbox.fgd like trigger_traversal_invalid_spot also do not show.

The entity does appear in the console but is unlike other triggers:
https://i.imgur.com/up6F9SR.png

Trigger code (have also tried deriving from Entity

using Sandbox;

namespace Strafe.Entities
{

	[Library("trigger_timer_start", Title = "Timer Start")]
	public class TriggerTimerStart : ModelEntity
	{

		public override void StartTouch( Entity other )
		{
			base.StartTouch( other );


		}

		public override void EndTouch( Entity other )
		{
			base.EndTouch( other );

			Log.Info( "Exited start zone!!!" );
		}

	}

}

Entity.OnPhysicsCollision needs more collision data

Only getting HitEntity, speed and TimeDelta, can't figure out very much useful stuff from that to act on.

Ideally the entire CollisionData struct should be passed back, but I mainly need CollisionData.HitPos and CollisionData.HitNormal to figure out where to place particle effects, play sounds, etc.. As well as OldVelocity.

text-align: center not centering text

timerhud {
    position: absolute;
    left: 50%;
    bottom: 200px;
    transform: translateX(-50%);
    padding: 6px 12px;
    background-color: rgba(black, 0.5);
    border-radius: 6px;
    font-size: 14px;
    font-family: Tahoma;
    color: white;

    label {
        text-align:center;
    }
}

result in:
https://i.imgur.com/vlpgGLU.png

toyed around with justify-content and align-items, can't get anything to center the text.

SCSS Variables not supported

$theme-color: red;

.button {
    background-color: rgba($theme-color, .2);
}

.link {
    background-color: rgba($theme-color, .8);
}

Fails with: `Error parsing stylesheet: Parse Error, unexpected character ; [/hud.scss:0]

missing texture on rowhouse_ruin lod

lod material is broken/missing

2021-04-26.19-33-30.mp4

models/rust_structures/house_ruins/rowhouse_ruin_1st_6x12.vmdl
models/rust_structures/house_ruins/rowhouse_ruin_2st_6x12.vmdl
models/rust_structures/house_ruins/rowhouse_ruin_2st_9x12.vmdl
models/rust_structures/house_ruins/rowhouse_ruin_2st_9x12b.vmdl
models/rust_structures/house_ruins/rowhouse_ruin_3st_15x12.vmdl

PanelStyle.Width values of 0 give the element negative width

When setting a PanelStyle.Width manually any value of 0 produces something that looks like:

image

The expected behavior is that it'd be invisible or at the very least only 1px wide. Using this value this way is useful for creating health bars and others.

Transform doesn't update bounding box of panels

image

As you can see in the image above, the image has a transform: rotateZ(90); applied which rotates the gun's image from horizontal to vertical, however when clicking the icon the bounding box is still horizontal which doesn't line up with the visuals.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.