forked from SpaceStation14-Shenanigans/Monolith
Compare commits
37 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 4e6706c3bb | |||
| e41ef48441 | |||
| 27e7b2f70a | |||
| 2bd317dadb | |||
| 1145822797 | |||
| 27dca32ef3 | |||
| 4bdad8f6ee | |||
| 38ebc2699c | |||
| 82f75ff37f | |||
| c84cde54cb | |||
| f0c6624762 | |||
| 277ad91140 | |||
| b9419b25a1 | |||
| e1a5488f14 | |||
| d9b46ca6dc | |||
| a672e9bd28 | |||
| 2a5fe8fe6a | |||
| e069f2ba9d | |||
| db3675b3e8 | |||
| 79bf0fec68 | |||
| 41b3fb9113 | |||
| 7cd749dfa6 | |||
| eb44deeeda | |||
| 7035e752a9 | |||
| 2fdd1cd573 | |||
| 6c4101e0c0 | |||
| 5f90433697 | |||
| 9f54374593 | |||
| 5272291275 | |||
| 4a0f4cec3a | |||
| 5d68716090 | |||
| a4b1a5317c | |||
| ee48853724 | |||
| a8651f6457 | |||
| 1feed16a6e | |||
| 85c4a6b41b | |||
| 059e30ac23 |
@@ -39,6 +39,8 @@ namespace Content.MapRenderer.Painters
|
||||
// Seriously whoever made MapPainter use GameMapPrototype I wish you step on a lego one time.
|
||||
Map = map,
|
||||
});
|
||||
pair.ServerLogHandler.FailureLevel = LogLevel.Fatal;
|
||||
pair.ClientLogHandler.FailureLevel = LogLevel.Fatal;
|
||||
|
||||
await foreach (var image in RenderPair(stopwatch, pair))
|
||||
yield return image;
|
||||
@@ -56,6 +58,8 @@ namespace Content.MapRenderer.Painters
|
||||
Connected = true,
|
||||
Fresh = false,
|
||||
});
|
||||
pair.ServerLogHandler.FailureLevel = LogLevel.Fatal;
|
||||
pair.ClientLogHandler.FailureLevel = LogLevel.Fatal;
|
||||
|
||||
var server = pair.Server;
|
||||
var client = pair.Client;
|
||||
@@ -69,6 +73,14 @@ namespace Content.MapRenderer.Painters
|
||||
|
||||
foreach (var grid in sMapManager.GetAllGrids(mapId))
|
||||
sEntityManager.QueueDeleteEntity(grid);
|
||||
});
|
||||
|
||||
await pair.RunTicksSync(10);
|
||||
await Task.WhenAll(client.WaitIdleAsync(), server.WaitIdleAsync());
|
||||
|
||||
await server.WaitPost(() =>
|
||||
{
|
||||
var mapId = sEntityManager.System<GameTicker>().DefaultMap;
|
||||
|
||||
try
|
||||
{
|
||||
|
||||
@@ -178,7 +178,7 @@ public sealed class AmeNodeGroup : BaseNodeGroup
|
||||
// return MathF.Max(200000f * MathF.Log10(2 * fuel * MathF.Pow(cores, (float)-0.5)), 0); // Frontier: preferring old calculation for now
|
||||
// return 200000f * MathF.Log10(fuel * fuel) * MathF.Pow(0.75f, cores - 1); // Frontier: preferring old calculation for now
|
||||
if (cores > 0 && fuel > 0) // Mono - default zero power unless conditions are met
|
||||
return 200000f * MathF.Log10(fuel * fuel) * MathF.Pow( 1.11111f, cores - 1); // Mono - Added positive returns from extra cores. Running AME at 2 fuel per core yields roughly the same power per core at all sizes
|
||||
return 200000f * MathF.Log10(fuel * fuel) * MathF.Pow( 1.11111f, fuel / 2f - 1); // Mono - Exponential scaling at high injection
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -61,4 +61,16 @@ public sealed partial class ThermalRegulatorComponent : Component
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public float ThermalRegulationTemperatureThreshold;
|
||||
|
||||
/// <summary>
|
||||
/// Process regulation while they're dead if there is a MobStateComponent? - Mono Hydrakin
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public bool ProcessWhileDead = false;
|
||||
|
||||
/// <summary>
|
||||
/// Process regulation in critical condition if there is a MobStateComponent? - Mono Hydrakin
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public bool ProcessWhileCrit = true;
|
||||
}
|
||||
|
||||
@@ -2,6 +2,8 @@ using Content.Server.Body.Components;
|
||||
using Content.Server.Temperature.Components;
|
||||
using Content.Server.Temperature.Systems;
|
||||
using Content.Shared.ActionBlocker;
|
||||
using Content.Shared.Mobs; // Mono
|
||||
using Content.Shared.Mobs.Components; // Mono
|
||||
using Robust.Shared.Timing;
|
||||
|
||||
namespace Content.Server.Body.Systems;
|
||||
@@ -51,6 +53,14 @@ public sealed class ThermalRegulatorSystem : EntitySystem
|
||||
if (!Resolve(ent, ref ent.Comp2, logMissing: false))
|
||||
return;
|
||||
|
||||
// mono begin
|
||||
if (ent.Comp1.ProcessWhileDead == false && TryComp<MobStateComponent>(ent, out var mobComp1) && mobComp1.CurrentState == MobState.Dead)
|
||||
return;
|
||||
|
||||
if (ent.Comp1.ProcessWhileCrit == false && TryComp<MobStateComponent>(ent, out var mobComp2) && mobComp2.CurrentState == MobState.Critical)
|
||||
return;
|
||||
// mono end
|
||||
|
||||
var totalMetabolismTempChange = ent.Comp1.MetabolismHeat - ent.Comp1.RadiatedHeat;
|
||||
|
||||
// implicit heat regulation
|
||||
|
||||
@@ -28,8 +28,6 @@ public sealed partial class BotanySystem : EntitySystem
|
||||
[Dependency] private readonly SharedSolutionContainerSystem _solutionContainerSystem = default!;
|
||||
[Dependency] private readonly MetaDataSystem _metaData = default!;
|
||||
[Dependency] private readonly RandomHelperSystem _randomHelper = default!;
|
||||
[Dependency] private readonly ContrabandTurnInSystem _contraband = default!; // Frontier
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
@@ -100,7 +98,6 @@ public sealed partial class BotanySystem : EntitySystem
|
||||
public EntityUid SpawnSeedPacket(SeedData proto, EntityCoordinates coords, EntityUid user, float? healthOverride = null)
|
||||
{
|
||||
var seed = SpawnAtPosition(proto.PacketPrototype, coords); // Frontier: Spawn<SpawnAtPosition
|
||||
_contraband.ClearContrabandValue(seed); // Frontier
|
||||
var seedComp = EnsureComp<SeedComponent>(seed);
|
||||
seedComp.Seed = proto;
|
||||
seedComp.HealthOverride = healthOverride;
|
||||
@@ -160,7 +157,6 @@ public sealed partial class BotanySystem : EntitySystem
|
||||
var product = _robustRandom.Pick(proto.ProductPrototypes);
|
||||
|
||||
var entity = SpawnAtPosition(product, position); // Frontier: Spawn<SpawnAtPosition
|
||||
_contraband.ClearContrabandValue(entity); // Frontier
|
||||
_randomHelper.RandomOffset(entity, 0.25f);
|
||||
products.Add(entity);
|
||||
|
||||
|
||||
@@ -171,7 +171,7 @@ namespace Content.Server.EntityEffects.Effects
|
||||
interruptsDoAfters: false,
|
||||
// Shitmed Change Start
|
||||
targetPart: TargetBodyPart.All,
|
||||
partMultiplier: 0.5f,
|
||||
partMultiplier: 1.00f, // Mono, 0.5f->1.00f
|
||||
canSever: false);
|
||||
// Shitmed Change End
|
||||
}
|
||||
|
||||
@@ -59,7 +59,6 @@ namespace Content.Server.Lathe
|
||||
[Dependency] private readonly SharedSolutionContainerSystem _solution = default!;
|
||||
[Dependency] private readonly StackSystem _stack = default!;
|
||||
[Dependency] private readonly TransformSystem _transform = default!;
|
||||
[Dependency] private readonly ContrabandTurnInSystem _contraband = default!; // Frontier
|
||||
[Dependency] private readonly DeviceLinkSystem _deviceLink = default!; // Mono
|
||||
|
||||
/// <summary>
|
||||
@@ -326,11 +325,7 @@ namespace Content.Server.Lathe
|
||||
|
||||
// Frontier: adjust price before merge (stack prices changed once)
|
||||
if (result.Valid)
|
||||
{
|
||||
ModifyPrintedEntityPrice(uid, comp, result);
|
||||
|
||||
_contraband.ClearContrabandValue(result);
|
||||
}
|
||||
// End Frontier
|
||||
|
||||
_stack.TryMergeToContacts(result);
|
||||
|
||||
@@ -21,6 +21,7 @@ namespace Content.Server.Preferences.Managers
|
||||
IEnumerable<KeyValuePair<NetUserId, ICharacterProfile>> GetSelectedProfilesForPlayers(List<NetUserId> userIds);
|
||||
bool HavePreferencesLoaded(ICommonSession session);
|
||||
Task RefreshPreferencesAsync(ICommonSession session, CancellationToken cancel);
|
||||
Task SetProfile(NetUserId userId, int slot, ICharacterProfile profile);
|
||||
Task SetProfile(NetUserId userId, int slot, ICharacterProfile profile,
|
||||
bool authoritative = true); // Mono
|
||||
}
|
||||
}
|
||||
|
||||
@@ -87,10 +87,11 @@ namespace Content.Server.Preferences.Managers
|
||||
if (message.Profile == null)
|
||||
_sawmill.Error($"User {userId} sent a {nameof(MsgUpdateCharacter)} with a null profile in slot {message.Slot}.");
|
||||
else
|
||||
await SetProfile(userId, message.Slot, message.Profile);
|
||||
await SetProfile(userId, message.Slot, message.Profile, false);
|
||||
}
|
||||
|
||||
public async Task SetProfile(NetUserId userId, int slot, ICharacterProfile profile)
|
||||
public async Task SetProfile(NetUserId userId, int slot, ICharacterProfile profile,
|
||||
bool authoritative = true) // Mono
|
||||
{
|
||||
if (!_cachedPlayerPrefs.TryGetValue(userId, out var prefsData) || !prefsData.PrefsLoaded)
|
||||
{
|
||||
@@ -105,6 +106,14 @@ namespace Content.Server.Preferences.Managers
|
||||
var session = _playerManager.GetSessionById(userId);
|
||||
|
||||
profile.EnsureValid(session, _dependencies);
|
||||
// Mono
|
||||
if (!authoritative && profile is HumanoidCharacterProfile humanoid)
|
||||
{
|
||||
if (curPrefs.Characters.TryGetValue(slot, out var oldProfile) && oldProfile is HumanoidCharacterProfile oldHumanoid)
|
||||
profile = humanoid.WithBankBalance(oldHumanoid.BankBalance);
|
||||
else
|
||||
profile = humanoid.WithBankBalance(HumanoidCharacterProfile.DefaultBalance);
|
||||
}
|
||||
|
||||
var profiles = new Dictionary<int, ICharacterProfile>(curPrefs.Characters)
|
||||
|
||||
|
||||
@@ -69,6 +69,8 @@ public sealed partial class ResearchSystem
|
||||
if (serverComponent.Clients.Contains(client))
|
||||
return;
|
||||
|
||||
UnregisterClient(client, clientComponent); // Mono Research Fix, unregister a client if applicable before registering to a new server
|
||||
|
||||
serverComponent.Clients.Add(client);
|
||||
clientComponent.Server = server;
|
||||
SyncClientWithServer(client, clientComponent: clientComponent);
|
||||
|
||||
@@ -58,7 +58,6 @@ namespace Content.Server.VendingMachines
|
||||
[Dependency] private readonly BankSystem _bankSystem = default!; // Frontier
|
||||
[Dependency] private readonly PopupSystem _popupSystem = default!; // Frontier
|
||||
[Dependency] private readonly IAdminLogManager _adminLogger = default!; // Frontier
|
||||
[Dependency] private readonly ContrabandTurnInSystem _contraband = default!; // Frontier
|
||||
[Dependency] private readonly StackSystem _stack = default!; // Frontier
|
||||
[Dependency] private readonly VendingMachinePurchaseSystem _vendingPurchase = default!; // Mono
|
||||
|
||||
@@ -545,8 +544,6 @@ namespace Content.Server.VendingMachines
|
||||
|
||||
var ent = Spawn(vendComponent.NextItemToEject, spawnCoordinates);
|
||||
|
||||
_contraband.ClearContrabandValue(ent); // Frontier
|
||||
|
||||
// Mono: Track vending machine purchases for pricing modifications
|
||||
// Only track if this was a paid purchase (not a random eject or force eject)
|
||||
if (!forceEject && vendComponent.LastPurchasePrice.HasValue)
|
||||
|
||||
@@ -115,7 +115,7 @@ namespace Content.Server._Mono.EntityEffects.Effects
|
||||
IgnoreResistances,
|
||||
interruptsDoAfters: false,
|
||||
targetPart: TargetBodyPart.All,
|
||||
partMultiplier: 0.5f,
|
||||
partMultiplier: 1.00f, // Mono, 0.5f->1.00f
|
||||
canSever: false);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -296,9 +296,7 @@ public sealed partial class MarketSystem
|
||||
else
|
||||
{
|
||||
var maxQuantityToWithdraw = marketData.GetMaxQuantityToWithdraw(prototype);
|
||||
var toWithdraw = args.Amount;
|
||||
if (args.Amount > maxQuantityToWithdraw)
|
||||
toWithdraw = maxQuantityToWithdraw;
|
||||
var toWithdraw = MathHelper.Clamp(args.Amount, 1, maxQuantityToWithdraw);
|
||||
|
||||
var existing = FindMarketDataByPrototype(marketData, args.ItemPrototype!);
|
||||
if (existing == null)
|
||||
|
||||
@@ -150,7 +150,7 @@ public sealed class SurgerySystem : SharedSurgerySystem
|
||||
if (HasComp<ForcedSleepingComponent>(args.Body))
|
||||
damageChange = damageChange * ent.Comp.SleepModifier;
|
||||
|
||||
SetDamage(args.Body, damageChange, 0.5f, args.User, args.Part);
|
||||
SetDamage(args.Body, damageChange, 1f, args.User, args.Part); // 0.5-> 1.0f part damage - Mono
|
||||
}
|
||||
|
||||
private void OnSurgerySpecialDamageChange(Entity<SurgerySpecialDamageChangeEffectComponent> ent, ref SurgeryStepDamageChangeEvent args)
|
||||
|
||||
@@ -177,7 +177,7 @@ public abstract partial class SharedSurgerySystem
|
||||
if (!HasComp<SanitizedComponent>(args.User))
|
||||
{
|
||||
var sepsis = new DamageSpecifier(_prototypes.Index<DamageTypePrototype>("Poison"), 15);
|
||||
var ev = new SurgeryStepDamageEvent(args.User, args.Body, args.Part, args.Surgery, sepsis, 0.5f);
|
||||
var ev = new SurgeryStepDamageEvent(args.User, args.Body, args.Part, args.Surgery, sepsis, 1.0f); // Mono - 0.5->1.0f - Mono Part surgery damage increase
|
||||
RaiseLocalEvent(args.Body, ref ev);
|
||||
}
|
||||
}
|
||||
@@ -360,7 +360,7 @@ public abstract partial class SharedSurgerySystem
|
||||
foreach (var type in group)
|
||||
adjustedDamage.DamageDict[type] -= bonus;
|
||||
|
||||
var ev = new SurgeryStepDamageEvent(args.User, args.Body, args.Part, args.Surgery, adjustedDamage, 0.5f);
|
||||
var ev = new SurgeryStepDamageEvent(args.User, args.Body, args.Part, args.Surgery, adjustedDamage, 2.5f); // 0.5 -> 2.5f part damage, buffed wound surgery tending - Mono
|
||||
RaiseLocalEvent(args.Body, ref ev);
|
||||
}
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ public abstract class SharedLayingDownSystem : EntitySystem
|
||||
{
|
||||
if (session?.AttachedEntity == null ||
|
||||
!HasComp<LayingDownComponent>(session.AttachedEntity) ||
|
||||
_gravity.IsWeightless(session.AttachedEntity.Value))
|
||||
!CanLieDown(session.AttachedEntity.Value)) // Mono
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -112,7 +112,7 @@ public abstract class SharedLayingDownSystem : EntitySystem
|
||||
// If the entity is not on a grid, try to make it stand up to avoid issues
|
||||
if (!TryComp<StandingStateComponent>(uid, out var standingState)
|
||||
|| standingState.CurrentState is StandingState.Standing
|
||||
|| Transform(uid).GridUid != null)
|
||||
|| CanLieDown(uid)) // Mono
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -150,7 +150,8 @@ public abstract class SharedLayingDownSystem : EntitySystem
|
||||
{
|
||||
if (!Resolve(uid, ref standingState, false) ||
|
||||
!Resolve(uid, ref layingDown, false) ||
|
||||
standingState.CurrentState is not StandingState.Standing)
|
||||
standingState.CurrentState is not StandingState.Standing ||
|
||||
!CanLieDown(uid)) // Mono
|
||||
{
|
||||
if (behavior == DropHeldItemsBehavior.AlwaysDrop)
|
||||
{
|
||||
@@ -163,6 +164,12 @@ public abstract class SharedLayingDownSystem : EntitySystem
|
||||
_standing.Down(uid, true, behavior != DropHeldItemsBehavior.NoDrop, false, standingState);
|
||||
return true;
|
||||
}
|
||||
|
||||
// Mono
|
||||
private bool CanLieDown(EntityUid uid)
|
||||
{
|
||||
return _gravity.EntityOnGravitySupportingGridOrMap(uid);
|
||||
}
|
||||
}
|
||||
|
||||
[Serializable, NetSerializable]
|
||||
|
||||
@@ -24,7 +24,7 @@ We provide some scripts shown below to make the job easier.
|
||||
### Build dependencies
|
||||
|
||||
> - Git
|
||||
> - .NET SDK 9.0.101
|
||||
> - .NET SDK 10.0
|
||||
|
||||
|
||||
### Windows
|
||||
|
||||
@@ -18716,3 +18716,126 @@ Entries:
|
||||
id: 2064
|
||||
time: '2026-03-22T19:49:14.0000000+00:00'
|
||||
url: https://github.com/Monolith-Station/Monolith/pull/3499
|
||||
- author: tonotom1
|
||||
changes:
|
||||
- type: Tweak
|
||||
message: >-
|
||||
Cables no longer drop an item when destroyed, ever. Hopefully this will
|
||||
reduce ram lag. Cable HP also standardized to 200 for all types.
|
||||
id: 2065
|
||||
time: '2026-03-22T22:41:10.0000000+00:00'
|
||||
url: https://github.com/Monolith-Station/Monolith/pull/3520
|
||||
- author: Redrover1760
|
||||
changes:
|
||||
- type: Tweak
|
||||
message: Hydrakin no longer heat up in criticial.
|
||||
- type: Fix
|
||||
message: People no longer thermal regulate while dead.
|
||||
id: 2066
|
||||
time: '2026-03-22T22:54:10.0000000+00:00'
|
||||
url: https://github.com/Monolith-Station/Monolith/pull/3530
|
||||
- author: Redrover1760
|
||||
changes:
|
||||
- type: Fix
|
||||
message: Part damage easier to heal/injure with surgery/chems
|
||||
id: 2067
|
||||
time: '2026-03-22T23:22:33.0000000+00:00'
|
||||
url: https://github.com/Monolith-Station/Monolith/pull/3533
|
||||
- author: Redrover1760
|
||||
changes:
|
||||
- type: Tweak
|
||||
message: Built research datafarms now work
|
||||
id: 2068
|
||||
time: '2026-03-23T03:42:15.0000000+00:00'
|
||||
url: https://github.com/Monolith-Station/Monolith/pull/3536
|
||||
- author: Kiithnaras
|
||||
changes:
|
||||
- type: Tweak
|
||||
message: Added roofing mask and emergency lighting to CDM Comet.
|
||||
id: 2069
|
||||
time: '2026-03-23T04:00:28.0000000+00:00'
|
||||
url: https://github.com/Monolith-Station/Monolith/pull/3381
|
||||
- author: Redrover1760
|
||||
changes:
|
||||
- type: Tweak
|
||||
message: >-
|
||||
Tending surgery heals bodyparts 2.5x the amount tended, previous value
|
||||
was 0.5x
|
||||
- type: Tweak
|
||||
message: >-
|
||||
Other surgery based damage increased to 1.0x part damage instead of 0.5x
|
||||
(i.e sepsis)
|
||||
id: 2070
|
||||
time: '2026-03-23T06:04:49.0000000+00:00'
|
||||
url: https://github.com/Monolith-Station/Monolith/pull/3534
|
||||
- author: Redrover1760
|
||||
changes:
|
||||
- type: Tweak
|
||||
message: Research datafarms now can be made with any 10000 point disk.
|
||||
id: 2071
|
||||
time: '2026-03-23T17:23:36.0000000+00:00'
|
||||
url: https://github.com/Monolith-Station/Monolith/pull/3543
|
||||
- author: chuga-git
|
||||
changes:
|
||||
- type: Tweak
|
||||
message: MARAUDER plasma cannon projectile speed increased by 50%. (100->150)
|
||||
id: 2072
|
||||
time: '2026-03-24T11:44:39.0000000+00:00'
|
||||
url: https://github.com/Monolith-Station/Monolith/pull/3549
|
||||
- author: Redrover1760
|
||||
changes:
|
||||
- type: Fix
|
||||
message: >-
|
||||
Printed contraband-type items, aka enemy faction gear, can now be sold
|
||||
for FMCs/DCs. Frontier is so frustrating man.
|
||||
id: 2073
|
||||
time: '2026-03-24T12:06:49.0000000+00:00'
|
||||
url: https://github.com/Monolith-Station/Monolith/pull/3548
|
||||
- author: gelliii
|
||||
changes:
|
||||
- type: Add
|
||||
message: Added the Horsefly, welded together by hopes and dreams.
|
||||
id: 2074
|
||||
time: '2026-03-24T15:07:30.0000000+00:00'
|
||||
url: https://github.com/Monolith-Station/Monolith/pull/3155
|
||||
- author: Ilya246
|
||||
changes:
|
||||
- type: Fix
|
||||
message: Fixes the server not checking some bank balance-related values.
|
||||
id: 2075
|
||||
time: '2026-03-24T19:00:31.0000000+00:00'
|
||||
url: https://github.com/Monolith-Station/Monolith/pull/3550
|
||||
- author: Ilya246
|
||||
changes:
|
||||
- type: Tweak
|
||||
message: >-
|
||||
AMEs no longer scale purely off core count. Injection count now matters
|
||||
instead.
|
||||
id: 2076
|
||||
time: '2026-03-24T19:54:07.0000000+00:00'
|
||||
url: https://github.com/Monolith-Station/Monolith/pull/3552
|
||||
- author: Avalon-Proto
|
||||
changes:
|
||||
- type: Add
|
||||
message: >-
|
||||
Ullman Industries has released a new overcoat, this one with much
|
||||
thicker fur around the neck
|
||||
id: 2077
|
||||
time: '2026-03-24T23:41:50.0000000+00:00'
|
||||
url: https://github.com/Monolith-Station/Monolith/pull/3260
|
||||
- author: Lokilife
|
||||
changes:
|
||||
- type: Fix
|
||||
message: You can't lie in space with voidboots anymore
|
||||
id: 2078
|
||||
time: '2026-03-25T00:08:36.0000000+00:00'
|
||||
url: https://github.com/Monolith-Station/Monolith/pull/3551
|
||||
- author: Redrover1760
|
||||
changes:
|
||||
- type: Fix
|
||||
message: >-
|
||||
Research generating things no longer connect to multiple servers at once
|
||||
when built
|
||||
id: 2079
|
||||
time: '2026-03-25T04:12:27.0000000+00:00'
|
||||
url: https://github.com/Monolith-Station/Monolith/pull/3556
|
||||
|
||||
@@ -8695,7 +8695,7 @@ entities:
|
||||
- type: Transform
|
||||
pos: 42.607162,12.70194
|
||||
parent: 1653
|
||||
- proto: ResearchDisk
|
||||
- proto: ResearchDisk10000
|
||||
entities:
|
||||
- uid: 1625
|
||||
components:
|
||||
|
||||
@@ -855,7 +855,7 @@ entities:
|
||||
- type: Transform
|
||||
pos: -3.5,-0.5
|
||||
parent: 85
|
||||
- proto: ResearchDisk
|
||||
- proto: ResearchDisk10000
|
||||
entities:
|
||||
- uid: 87
|
||||
components:
|
||||
|
||||
@@ -4,8 +4,8 @@ meta:
|
||||
engineVersion: 264.0.0
|
||||
forkId: ""
|
||||
forkVersion: ""
|
||||
time: 02/18/2026 00:42:15
|
||||
entityCount: 1359
|
||||
time: 03/07/2026 02:29:09
|
||||
entityCount: 1371
|
||||
maps: []
|
||||
grids:
|
||||
- 1
|
||||
@@ -119,9 +119,9 @@ entities:
|
||||
- type: SpreaderGrid
|
||||
spreadQueues:
|
||||
Puddle: []
|
||||
Kudzu: []
|
||||
Smoke: []
|
||||
MetalFoam: []
|
||||
Kudzu: []
|
||||
- type: Shuttle
|
||||
dampingModifier: 0.25
|
||||
- type: GridPathfinding
|
||||
@@ -1304,6 +1304,21 @@ entities:
|
||||
- type: ShipGridLock
|
||||
locked: False
|
||||
- type: NavMap
|
||||
- type: Roof
|
||||
data:
|
||||
0,-1: 13527468013044891660
|
||||
0,0: 17940925813796436536
|
||||
0,1: 18374401675977357566
|
||||
1,1: 4611685743549480959
|
||||
0,2: 4079358
|
||||
1,2: 51743894847
|
||||
2,1: 852186188680975
|
||||
1,0: 18446744073709551502
|
||||
2,0: 218427893397785347
|
||||
1,-1: 12583198649346949120
|
||||
2,-1: 1953158174865555462
|
||||
2,-2: 434034414087831552
|
||||
0,-2: 868068828175663104
|
||||
- proto: AirAlarm
|
||||
entities:
|
||||
- uid: 2
|
||||
@@ -4773,6 +4788,75 @@ entities:
|
||||
- type: Transform
|
||||
pos: 18.5,8.5
|
||||
parent: 1
|
||||
- proto: EmergencyLight
|
||||
entities:
|
||||
- uid: 859
|
||||
components:
|
||||
- type: Transform
|
||||
rot: 3.141592653589793 rad
|
||||
pos: 3.5,14.5
|
||||
parent: 1
|
||||
- uid: 1084
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 8.5,12.5
|
||||
parent: 1
|
||||
- uid: 1353
|
||||
components:
|
||||
- type: Transform
|
||||
rot: -1.5707963267948966 rad
|
||||
pos: 5.5,4.5
|
||||
parent: 1
|
||||
- uid: 1363
|
||||
components:
|
||||
- type: Transform
|
||||
rot: 1.5707963267948966 rad
|
||||
pos: 15.5,4.5
|
||||
parent: 1
|
||||
- uid: 1364
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 9.5,5.5
|
||||
parent: 1
|
||||
- uid: 1365
|
||||
components:
|
||||
- type: Transform
|
||||
rot: 1.5707963267948966 rad
|
||||
pos: 10.5,18.5
|
||||
parent: 1
|
||||
- uid: 1366
|
||||
components:
|
||||
- type: Transform
|
||||
rot: -1.5707963267948966 rad
|
||||
pos: 11.5,8.5
|
||||
parent: 1
|
||||
- uid: 1367
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 14.5,11.5
|
||||
parent: 1
|
||||
- uid: 1368
|
||||
components:
|
||||
- type: Transform
|
||||
rot: -1.5707963267948966 rad
|
||||
pos: 5.5,-2.5
|
||||
parent: 1
|
||||
- uid: 1369
|
||||
components:
|
||||
- type: Transform
|
||||
rot: -1.5707963267948966 rad
|
||||
pos: 4.5,8.5
|
||||
parent: 1
|
||||
- uid: 1370
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 18.5,10.5
|
||||
parent: 1
|
||||
- uid: 1371
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 15.5,14.5
|
||||
parent: 1
|
||||
- proto: ExosuitFabricator
|
||||
entities:
|
||||
- uid: 608
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -44,7 +44,7 @@
|
||||
prob: 0.1
|
||||
- id: WelderIndustrialAdvanced
|
||||
prob: 0.1
|
||||
- id: ResearchDisk
|
||||
- id: ResearchDisk10000 # Mono
|
||||
prob: 0.1
|
||||
- id: SheetUranium
|
||||
prob: 0.1
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
weight: 10
|
||||
children:
|
||||
- id: ClothingBeltUtilityFilled
|
||||
- id: ResearchDisk
|
||||
- id: ResearchDisk10000
|
||||
- id: ResearchDisk35000
|
||||
- id: RandomInstruments
|
||||
|
||||
|
||||
@@ -93,7 +93,7 @@
|
||||
- id: SheetPlasma1
|
||||
amount: !type:RangeNumberSelector
|
||||
range: 3, 5
|
||||
- id: ResearchDisk
|
||||
- id: ResearchDisk10000
|
||||
- id: DrinkGoldenCup
|
||||
- id: TreasureSampleTube
|
||||
- !type:NestedSelector
|
||||
|
||||
@@ -234,7 +234,7 @@
|
||||
orGroup: GiftPool
|
||||
- id: WeaponFlareGun
|
||||
orGroup: GiftPool
|
||||
- id: ResearchDisk
|
||||
- id: ResearchDisk10000
|
||||
orGroup: GiftPool
|
||||
- id: Machete
|
||||
orGroup: GiftPool
|
||||
|
||||
@@ -100,6 +100,9 @@
|
||||
points: 10000
|
||||
- type: StaticPrice
|
||||
price: 2000
|
||||
- type: Tag
|
||||
tags:
|
||||
- ResearchDisk10000
|
||||
|
||||
- type: entity
|
||||
parent: ResearchDisk
|
||||
|
||||
@@ -79,13 +79,13 @@
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 400
|
||||
damage: 250 #Mono 100 >> 250
|
||||
behaviors: #excess damage (nuke?). avoid computational cost of spawning entities.
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 300
|
||||
damage: 200 #Mono 50 >> 200
|
||||
behaviors:
|
||||
- !type:SpawnEntitiesBehavior
|
||||
spawn:
|
||||
@@ -138,13 +138,13 @@
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 350
|
||||
damage: 250 #Mono 100 >> 250
|
||||
behaviors: #excess damage (nuke?). avoid computational cost of spawning entities.
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 250
|
||||
damage: 200 #Mono 50 >> 200
|
||||
behaviors:
|
||||
- !type:SpawnEntitiesBehavior
|
||||
spawn:
|
||||
@@ -193,13 +193,13 @@
|
||||
thresholds:
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 250
|
||||
damage: 250 #Mono 100 >> 250
|
||||
behaviors: #excess damage (nuke?). avoid computational cost of spawning entities.
|
||||
- !type:DoActsBehavior
|
||||
acts: [ "Destruction" ]
|
||||
- trigger:
|
||||
!type:DamageTrigger
|
||||
damage: 150
|
||||
damage: 200 #Mono 50 >> 200
|
||||
behaviors:
|
||||
- !type:SpawnEntitiesBehavior
|
||||
spawn:
|
||||
|
||||
@@ -32,6 +32,17 @@
|
||||
heatingCoefficient: 1.1
|
||||
coolingCoefficient: 0.5
|
||||
|
||||
- type: entity
|
||||
parent: ClothingNeckUllimanOvercoat
|
||||
id: ClothingNeckHeavyUllimanOvercoat
|
||||
name: heavy U.I. overcoat
|
||||
description: A thicker, heavier verison of the U.I. overcoat, with even more synthetic fur for style.
|
||||
components:
|
||||
- type: Sprite
|
||||
sprite: _Mono/Clothing/Neck/Misc/heavyovercoat.rsi
|
||||
- type: Clothing
|
||||
sprite: _Mono/Clothing/Neck/Misc/heavyovercoat.rsi
|
||||
|
||||
# Bomb Collars
|
||||
|
||||
- type: entity
|
||||
|
||||
@@ -154,7 +154,7 @@
|
||||
id: ClothingOuterHardsuitTacsuitHighValue
|
||||
|
||||
- type: entity
|
||||
parent: [ClothingOuterHardsuitJuggernaut, EnergyShieldClothing ] # Jugger Suit
|
||||
parent: [ClothingOuterHardsuitJuggernaut, EnergyShieldClothing, BaseFactionGearTSFT3 ] # Jugger Suit
|
||||
id: ClothingOuterHardsuitNfsdExperimental
|
||||
name: TSFMC M92-X tacsuit
|
||||
description: An experimental modification of the M92 tacsuit for spec-ops units of the TSFMC. Durable, and comes with an integrated soft-shield, but at the cost of insulation and heft.
|
||||
|
||||
+4
-4
@@ -21,8 +21,8 @@
|
||||
Blunt: 0.67
|
||||
Slash: 0.5
|
||||
Piercing: 0.5
|
||||
Heat: 0.67
|
||||
Radiation: 0.5
|
||||
Heat: 0.4
|
||||
Radiation: 0.6
|
||||
Caustic: 0.5
|
||||
- type: StaminaDamageResistance # Mono - Stamres
|
||||
coefficient: 0.5
|
||||
@@ -74,8 +74,8 @@
|
||||
- type: StaminaDamageResistance # Mono - Stamres
|
||||
coefficient: 0.67
|
||||
- type: ClothingSpeedModifier
|
||||
walkModifier: 0.95
|
||||
sprintModifier: 0.95
|
||||
walkModifier: 1.05
|
||||
sprintModifier: 1.05
|
||||
- type: HeldSpeedModifier
|
||||
- type: ToggleableClothing # Goobstation - Modsuits change - Mono - this is a solution for helmet attachment/cover to not fit on hardsuits
|
||||
requiredSlot: outerclothing
|
||||
|
||||
+2
-2
@@ -25,7 +25,7 @@
|
||||
recoil: 5 # 1/5x
|
||||
minAngle: 0
|
||||
maxAngle: 0
|
||||
projectileSpeed: 100
|
||||
projectileSpeed: 150
|
||||
shootThermalSignature: 4000000 # ~2.8km with continuous fire
|
||||
soundGunshot:
|
||||
path: /Audio/Weapons/Guns/Gunshots/laser_cannon2.ogg
|
||||
@@ -99,7 +99,7 @@
|
||||
recoil: 8
|
||||
minAngle: 0
|
||||
maxAngle: 0
|
||||
projectileSpeed: 100
|
||||
projectileSpeed: 150
|
||||
shootThermalSignature: 4000000 # ~2.8km with continuous fire
|
||||
soundGunshot:
|
||||
path: /Audio/Weapons/Guns/Gunshots/laser_cannon2.ogg
|
||||
|
||||
@@ -105,6 +105,7 @@
|
||||
name: bolted data farm (Research)
|
||||
description: A power-hungry server dedicated towards scraping data from... somewhere. This one generates research points at a rate of 35 per second. It seems to be bolted to the floor.
|
||||
components:
|
||||
- type: ResearchClient
|
||||
- type: ResearchPointSource
|
||||
pointsPerSecond: 35
|
||||
active: true
|
||||
@@ -113,7 +114,7 @@
|
||||
|
||||
- type: entity
|
||||
id: DatafarmResearch
|
||||
parent: [BaseDataFarm, ConstructibleMachine]
|
||||
parent: [BaseDataFarmResearch, ConstructibleMachine]
|
||||
name: data farm (Research)
|
||||
description: A power-hungry server dedicated towards scraping data from... somewhere. This one generates research points at a rate of 10 per second.
|
||||
components:
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
# Author Info
|
||||
# GitHub: gelliii
|
||||
# Discord: .gelliii.
|
||||
|
||||
# Shuttle Notes:
|
||||
#
|
||||
- type: vessel
|
||||
id: Horsefly
|
||||
parent: BaseVessel
|
||||
name: GSI Horsefly
|
||||
description: A light artillery ship made of scrap fused by a deranged group of mercenaries, it's designed to fire a single shell then die. Isn't supplied with any form of atmosphere, bring your own suit.
|
||||
price: 32500 # it's a heap of scrap
|
||||
category: Small
|
||||
group: Scrap
|
||||
shuttlePath: /Maps/_Mono/Shuttles/Scrap/horsefly.yml
|
||||
guidebookPage: Null
|
||||
class:
|
||||
- Scrapyard
|
||||
- Pursuit
|
||||
engine:
|
||||
- Plasma
|
||||
|
||||
- type: gameMap
|
||||
id: Horsefly
|
||||
mapName: 'Horsefly'
|
||||
mapPath: /Maps/_Mono/Shuttles/Scrap/horsefly.yml
|
||||
minPlayers: 0
|
||||
stations:
|
||||
Horsefly:
|
||||
stationProto: StandardFrontierVessel
|
||||
components:
|
||||
- type: StationNameSetup
|
||||
mapNameTemplate: 'Horsefly SRP-MIL{1}'
|
||||
nameGenerator:
|
||||
!type:NanotrasenNameGenerator
|
||||
prefixCreator: '14'
|
||||
- type: StationJobs
|
||||
availableJobs:
|
||||
Contractor: [ 0, 0 ]
|
||||
Pilot: [ 0, 0 ]
|
||||
Mercenary: [ 0, 0 ]
|
||||
+2
-2
@@ -214,8 +214,8 @@
|
||||
color: red
|
||||
- type: RandomSpawner
|
||||
prototypes:
|
||||
- ResearchDisk
|
||||
- ResearchDisk
|
||||
- ResearchDisk10000
|
||||
- ResearchDisk10000
|
||||
- ResearchDisk35000
|
||||
chance: 0.95
|
||||
offset: 0.0
|
||||
|
||||
@@ -261,6 +261,15 @@
|
||||
equipment:
|
||||
neck: ClothingNeckUllimanOvercoat
|
||||
|
||||
- type: loadout
|
||||
id: ContractorClothingNeckHeavyUIOvercoat # Monolith
|
||||
effects:
|
||||
- !type:GroupLoadoutEffect
|
||||
proto: ContractorT2
|
||||
price: 0 # Mono
|
||||
equipment:
|
||||
neck: ClothingNeckHeavyUllimanOvercoat
|
||||
|
||||
- type: loadout
|
||||
id: ContractorClothingNeckCloakMiner
|
||||
effects:
|
||||
|
||||
@@ -66,6 +66,7 @@
|
||||
shiveringHeatRegulation: 3000
|
||||
normalBodyTemperature: 210.15
|
||||
thermalRegulationTemperatureThreshold: 30
|
||||
processWhileCrit: false
|
||||
- type: PressureProtection
|
||||
lowPressureMultiplier: 1.2
|
||||
- type: LanguageKnowledge
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
- Hydrakin bodies are [color=#FFA500]constantly heating up[/color]. They can tolerate heat without any insulation, but wearing hardsuits or coats will immediatly start [color=#FFA500]heating them up to 67C[/color].
|
||||
- Leporazine and Peranol have [color=#4169E1]amplified[/color] cooling effect on their body.
|
||||
- However, using any type of cryo chemicals will make hydrakins [color=#FFA500]fall asleep[/color] if their body temperature is low enough to activate it.
|
||||
- As well, Hydrakin's thermal regulation entirely fails in critical condition as while as being dead.
|
||||
|
||||
## Atmospherics
|
||||
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 1.7 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 651 B |
Binary file not shown.
|
After Width: | Height: | Size: 617 B |
Binary file not shown.
|
After Width: | Height: | Size: 602 B |
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"version": 1,
|
||||
"license": "CC-BY-SA-3.0",
|
||||
"copyright": "Sprites by zethine, inhands taken from standard overcoat.rsi",
|
||||
"size": {
|
||||
"x": 32,
|
||||
"y": 32
|
||||
},
|
||||
"states": [
|
||||
{
|
||||
"name": "equipped-NECK",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-right",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "inhand-left",
|
||||
"directions": 4
|
||||
},
|
||||
{
|
||||
"name": "icon"
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user