When a script is deleted from object contents, the object's server weight is not reliably reduced according to the (updated) calculation at https://wiki.secondlife.com/wiki/Mesh/Mesh_Server_Weight as it is when a script is added. So in order to get the correct server weight reflected in the Land Impact, it may be necessary to remove _two_ scripts and add one of them back.
This can be observed manually, but to simplify testing and demonstrate that it's a server-side effect, here's a little script:
report()
{
list details = llGetObjectDetails(llGetKey(),
[ OBJECT_PRIM_EQUIVALENCE
, OBJECT_SERVER_COST
, OBJECT_TOTAL_SCRIPT_COUNT
]);
llOwnerSay(llGetObjectName()+" consists of "+(string)llGetNumberOfPrims()+" links, having "
+(string)llList2Integer(details, 2)+" scripts for a server weight of "
+(string)llList2Float(details, 1)+" and total land impact of "
+(string)llList2Float(details, 0));
}
default
{
state_entry()
{
llSetLinkPrimitiveParamsFast(LINK_ALL_CHILDREN,
[ PRIM_PHYSICS_SHAPE_TYPE, PRIM_PHYSICS_SHAPE_NONE
, PRIM_LINK_TARGET, LINK_ROOT
, PRIM_PHYSICS_SHAPE_TYPE, PRIM_PHYSICS_SHAPE_CONVEX
]);
report();
}
changed(integer change)
{
if (CHANGED_LINK & change)
llResetScript();
if (CHANGED_INVENTORY & change)
report();
}
touch_start(integer num_detected)
{
report();
}
}