traison Posted August 3, 2024 Posted August 3, 2024 Not seeing anything wrong here, so gonna say that the issue actually comes from one of the argument names. One thing that really confuses the crap out of Papyrus is when you have a script named for example Timeout.psc and then you have a function in another file like: function NewThread(float TimeOut = 30.0) It's going to read that as: NewThread(<type> <type> = 30.0) instead of NewThread(<type> <identifier> = 30.0). So check for scripts named: Timeout, LocX, LocY, LocZ, RotX, RotY, RotZ and resync.
Colossus228 Posted August 3, 2024 Author Posted August 3, 2024 (edited) 17 minutes ago, traison said: Not seeing anything wrong here, so gonna say that the issue actually comes from one of the argument names. One thing that really confuses the crap out of Papyrus is when you have a script named for example Timeout.psc and then you have a function in another file like: function NewThread(float TimeOut = 30.0) It's going to read that as: NewThread(<type> <type> = 30.0) instead of NewThread(<type> <identifier> = 30.0). So check for scripts named: Timeout, LocX, LocY, LocZ, RotX, RotY, RotZ and resync. Well, search gives nothing, screenshots on how I done searching: Spoiler Edited August 3, 2024 by Colossus228 typo
traison Posted August 3, 2024 Posted August 3, 2024 How about you try compiling sslThreadController.psc? Otherwise kind of out of ideas here. If you're up for a RustDesk session I'll come have a look. Just make sure you understand what that entails before you agree to anything.
traison Posted August 3, 2024 Posted August 3, 2024 (edited) While the issue is not fixed, we did find a workaround. We renamed the offending functions to CenterOnCoords2 and NewThread2. Removed their default parameters and created proxy functions with the original function names and default values. These proxy functions are only in the empty states of the scripts and they only call their *2 variants. Example: sslThreadModel function NewThread(float TimeOut = 30.0) ; This is in the empty state return NewThread2(TimeOut) endFunction *elsewhere* sslThreadModel function NewThread2(float TimeOut) ; This was ONE OF the original NewThread functions ; Claim an available thread return ThreadSlots.PickModel(TimeOut) endFunction For some odd reason the script wouldn't compile with 2 identical functions (one in the empty state and one in another state) while they had a float variable with a default value in them. An int with a default was fine. No default was fine. Changing the variable name didn't fix it. Changing the function name didn't fix it. We checked to make sure the "." was actually a latin dot. We tried 2 papyrus compilers from 2 vastly different CK versions (just in case there was version differences). Edit: Having only one function in the empty state with float arguments and default values is perfectly fine. Hence the proxy function idea. This really smells like a compiler bug, perhaps has something to do with the regional settings of Colossus228. Edit again: If you know a proper fix to this, please post. Edited August 3, 2024 by traison 1
D_Logeka Posted September 25, 2025 Posted September 25, 2025 I am deeply sorry for necroing, but for people seeking the answer: On 4/14/2023 at 7:47 PM, adarkman said: For any people with this problem: Set "Regional Standards" in Control Panel to "English (USA)" then restart MO2/CK/Script Compiler. Voila - compilation successful.
traison Posted September 25, 2025 Posted September 25, 2025 48 minutes ago, D_Logeka said: Set "Regional Standards" in Control Panel... Seems like past me was correct too then. Seems odd that floats elsewhere are fine, and that it's just having issues with floats in such a specific way. Definitely smells like a bug in the compiler. I wonder how much work it would be to fool the compiler into thinking the OS region is en-US. Having to switch it back and forth for every compile session seems like it would be quite annoying.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now